@tutti-os/agent-gui 0.0.176 → 0.0.178
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/agent-conversation/index.d.ts +1 -1
- package/dist/agent-gui.d.ts +7 -1
- package/dist/agent-gui.js +1 -1
- package/dist/{agentGuiNodeTypes-CLU6X2Hk.d.ts → agentGuiNodeTypes-CbBAccKv.d.ts} +2 -0
- package/dist/app/renderer/agentactivity.css +8 -3
- package/dist/{chunk-4OOALEBA.js → chunk-WPV23OY7.js} +66 -10
- package/dist/chunk-WPV23OY7.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +1 -1
- package/package.json +13 -13
- package/dist/chunk-4OOALEBA.js.map +0 -1
|
@@ -2,7 +2,7 @@ import * as react from 'react';
|
|
|
2
2
|
import { ReactNode, JSX } from 'react';
|
|
3
3
|
import { c as AgentConversationVM, g as WorkspaceLinkAction, f as WorkspaceAgentSessionDetailViewModel } from '../agentConversationVM-DWEy7jzx.js';
|
|
4
4
|
export { B as BuildWorkspaceAgentSessionDetailInput, W as WorkspaceAgentActivityCard, e as WorkspaceAgentActivityTimelineItem, h as buildWorkspaceAgentSessionDetailViewModel } from '../agentConversationVM-DWEy7jzx.js';
|
|
5
|
-
import { d as AgentGUIProviderSkillOption, h as AgentMessageMarkdownWorkspaceAppIcon } from '../agentGuiNodeTypes-
|
|
5
|
+
import { d as AgentGUIProviderSkillOption, h as AgentMessageMarkdownWorkspaceAppIcon } from '../agentGuiNodeTypes-CbBAccKv.js';
|
|
6
6
|
import { AgentActivityMessage } from '@tutti-os/agent-activity-core';
|
|
7
7
|
import '@tutti-os/workspace-issue-manager/core';
|
|
8
8
|
import '../types-CWFDZVkv.js';
|
package/dist/agent-gui.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { ReactNode } from 'react';
|
|
|
3
3
|
import { I18nRuntime } from '@tutti-os/ui-i18n-runtime';
|
|
4
4
|
import { AgentActivityGoalControlInput, AgentActivityGoalControlResult, AgentActivityCreateSessionInput, AgentActivitySession, AgentActivityDeleteSessionInput, AgentActivityDeleteSessionResult, AgentActivitySendInput, AgentActivitySessionSettings, AgentActivityActivateSessionResult, AgentActivitySnapshot, AgentSessionEngine, AgentActivityMessageOrder, AgentActivityMessagePage, AgentActivitySendInputResult, AgentActivityRenameSessionInput, AgentActivitySubmitInteractiveInput, AgentActivitySubmitInteractiveResult, AgentActivitySnapshotListener, AgentActivitySubmitSettingsPatch } from '@tutti-os/agent-activity-core';
|
|
5
5
|
import { k as AgentHostAgentSessionComposerSettings, o as AgentHostUnactivateAgentSessionResult, b as AgentGUIAgentTarget, f as AgentGUIProvider, p as AgentPromptContentBlock, e as AgentGUINodeData, P as Point, g as AgentGUIProviderRailAllPresentation, h as AgentGUIProviderRailMode, i as AgentGUIProviderReadinessGate, d as AgentGUIHomeSuggestionId, N as NodeFrame, a as AgentGUIAgentDirectorySnapshot, c as AgentGUIAllAgentsPresentation } from './types-CWFDZVkv.js';
|
|
6
|
-
import { A as AgentComposerDraft, i as AgentSessionCommand, d as AgentGUIProviderSkillOption, b as AgentGUIComposerSettingsVM, e as AgentGUIQueueStatus, f as AgentGUIQueuedPromptVM, h as AgentMessageMarkdownWorkspaceAppIcon, j as AgentSlashCommandCapability, c as AgentGUINodeViewModel, a as AgentComposerDraftFile, k as AgentUsageQuota, g as AgentHostInputApi } from './agentGuiNodeTypes-
|
|
6
|
+
import { A as AgentComposerDraft, i as AgentSessionCommand, d as AgentGUIProviderSkillOption, b as AgentGUIComposerSettingsVM, e as AgentGUIQueueStatus, f as AgentGUIQueuedPromptVM, h as AgentMessageMarkdownWorkspaceAppIcon, j as AgentSlashCommandCapability, c as AgentGUINodeViewModel, a as AgentComposerDraftFile, k as AgentUsageQuota, g as AgentHostInputApi } from './agentGuiNodeTypes-CbBAccKv.js';
|
|
7
7
|
import { WorkspaceFileReference, ReferenceLocateTarget, WorkspaceFileReferenceAdapter, ReferenceProvenanceCatalog } from '@tutti-os/workspace-file-reference/contracts';
|
|
8
8
|
export { ReferenceProvenanceCatalog as AgentGUIReferenceProvenanceFilterCatalog } from '@tutti-os/workspace-file-reference/contracts';
|
|
9
9
|
import { A as AgentContextMentionItem } from './agentFileMentionContracts-B0yQizXB.js';
|
|
@@ -885,6 +885,7 @@ interface AgentComposerProps {
|
|
|
885
885
|
permissionModeId?: string | null;
|
|
886
886
|
}) => void;
|
|
887
887
|
capabilityMenuState?: AgentComposerCapabilityMenuState;
|
|
888
|
+
capabilityControlsReadOnly?: boolean;
|
|
888
889
|
onCapabilitySettingsRequest?: (capability: AgentComposerCapabilitySettingsTarget) => void;
|
|
889
890
|
onSlashStatusOpen?: () => void;
|
|
890
891
|
onSlashStatusClose?: () => void;
|
|
@@ -1162,6 +1163,11 @@ interface AgentGUINodeHostCapabilities {
|
|
|
1162
1163
|
/** Legacy Tutti Agent-only opt-in. Prefer an explicit catalog in new hosts. */
|
|
1163
1164
|
referenceProvenanceFilterEnabled?: boolean;
|
|
1164
1165
|
capabilityMenuState?: AgentComposerCapabilityMenuState;
|
|
1166
|
+
/**
|
|
1167
|
+
* Keeps owner-supported Browser/Computer capability entries visible while
|
|
1168
|
+
* preventing this host from mutating device-owned capability settings.
|
|
1169
|
+
*/
|
|
1170
|
+
capabilityControlsReadOnly?: boolean;
|
|
1165
1171
|
accountMenuState?: AgentGUIAccountMenuState | null;
|
|
1166
1172
|
agentTargets?: readonly AgentGUIAgentTarget[];
|
|
1167
1173
|
agentTargetsLoading?: boolean;
|
package/dist/agent-gui.js
CHANGED
|
@@ -677,6 +677,8 @@ interface AgentGUIComposerSettingsVM {
|
|
|
677
677
|
selectedProjectPath?: string | null;
|
|
678
678
|
/** Persisted rail membership used to scope Agent-generated file mentions. */
|
|
679
679
|
selectedProjectSectionKey?: string | null;
|
|
680
|
+
/** Resolve the durable default only before the home project intent is known. */
|
|
681
|
+
shouldApplyPreparedProjectSelection?: boolean;
|
|
680
682
|
projectLocked?: boolean;
|
|
681
683
|
projectPathIsRemote?: boolean;
|
|
682
684
|
collapseModelOptionsToLatest?: boolean;
|
|
@@ -6366,6 +6366,8 @@ button.agent-gui-node__conversation-section-toggle:hover
|
|
|
6366
6366
|
|
|
6367
6367
|
.agent-gui-node__conversation-item {
|
|
6368
6368
|
--agent-gui-conversation-actions-width: 72px;
|
|
6369
|
+
--agent-gui-conversation-actions-inset: 4px;
|
|
6370
|
+
--agent-gui-conversation-actions-gap: 8px;
|
|
6369
6371
|
|
|
6370
6372
|
position: relative;
|
|
6371
6373
|
display: block;
|
|
@@ -6410,7 +6412,7 @@ button.agent-gui-node__conversation-section-toggle:hover
|
|
|
6410
6412
|
display: grid;
|
|
6411
6413
|
box-sizing: border-box;
|
|
6412
6414
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
6413
|
-
gap:
|
|
6415
|
+
gap: var(--agent-gui-conversation-actions-gap);
|
|
6414
6416
|
align-items: center;
|
|
6415
6417
|
width: 100%;
|
|
6416
6418
|
max-width: 100%;
|
|
@@ -6452,7 +6454,10 @@ button.agent-gui-node__conversation-section-toggle:hover
|
|
|
6452
6454
|
)
|
|
6453
6455
|
.agent-gui-node__conversation-select {
|
|
6454
6456
|
grid-template-columns: minmax(0, 1fr) 0;
|
|
6455
|
-
padding-right: calc(
|
|
6457
|
+
padding-right: calc(
|
|
6458
|
+
var(--agent-gui-conversation-actions-width) +
|
|
6459
|
+
var(--agent-gui-conversation-actions-inset)
|
|
6460
|
+
);
|
|
6456
6461
|
}
|
|
6457
6462
|
|
|
6458
6463
|
.agent-gui-node__conversation-item[data-pending-delete="true"]
|
|
@@ -6486,7 +6491,7 @@ button.agent-gui-node__conversation-section-toggle:hover
|
|
|
6486
6491
|
.agent-gui-node__conversation-actions {
|
|
6487
6492
|
position: absolute;
|
|
6488
6493
|
top: 50%;
|
|
6489
|
-
right:
|
|
6494
|
+
right: var(--agent-gui-conversation-actions-inset);
|
|
6490
6495
|
z-index: 1;
|
|
6491
6496
|
display: inline-flex;
|
|
6492
6497
|
align-items: center;
|
|
@@ -5263,7 +5263,7 @@ function arePermissionConfigsEqual(left, right) {
|
|
|
5263
5263
|
);
|
|
5264
5264
|
}
|
|
5265
5265
|
function areComposerSettingsVMsEqual(left, right) {
|
|
5266
|
-
return sameComposerSettings(left.sessionSettings, right.sessionSettings) && areComposerSettingsDraftsEqual(left.draftSettings, right.draftSettings) && left.supportsModel === right.supportsModel && left.supportsReasoningEffort === right.supportsReasoningEffort && left.supportsSpeed === right.supportsSpeed && (left.supportsPermissionMode ?? false) === (right.supportsPermissionMode ?? false) && left.supportsPlanMode === right.supportsPlanMode && (left.supportsBrowser ?? false) === (right.supportsBrowser ?? false) && (left.supportsComputerUse ?? false) === (right.supportsComputerUse ?? false) && (left.permissionModeChangeDuringTurn ?? false) === (right.permissionModeChangeDuringTurn ?? false) && slashCommandPoliciesEqual(left.slashCommandPolicy, right.slashCommandPolicy) && left.isSettingsLoading === right.isSettingsLoading && !!left.isCapabilityOptionsLoading === !!right.isCapabilityOptionsLoading && !!left.isModelOptionsLoading === !!right.isModelOptionsLoading && left.modelUnavailable === right.modelUnavailable && left.reasoningUnavailable === right.reasoningUnavailable && left.speedUnavailable === right.speedUnavailable && (left.permissionModeUnavailable ?? false) === (right.permissionModeUnavailable ?? false) && (left.planExclusiveWithPermissionMode ?? false) === (right.planExclusiveWithPermissionMode ?? false) && (left.selectedModelValue ?? null) === (right.selectedModelValue ?? null) && (left.selectedReasoningEffortValue ?? null) === (right.selectedReasoningEffortValue ?? null) && (left.selectedSpeedValue ?? null) === (right.selectedSpeedValue ?? null) && (left.selectedPermissionModeValue ?? null) === (right.selectedPermissionModeValue ?? null) && arePermissionConfigsEqual(left.permissionConfig, right.permissionConfig) && (left.selectedProjectPath ?? null) === (right.selectedProjectPath ?? null) && Boolean(left.projectLocked) === Boolean(right.projectLocked) && Boolean(left.projectPathIsRemote) === Boolean(right.projectPathIsRemote) && Boolean(left.collapseModelOptionsToLatest) === Boolean(right.collapseModelOptionsToLatest) && areComposerSettingOptionListsEqual(
|
|
5266
|
+
return sameComposerSettings(left.sessionSettings, right.sessionSettings) && areComposerSettingsDraftsEqual(left.draftSettings, right.draftSettings) && left.supportsModel === right.supportsModel && left.supportsReasoningEffort === right.supportsReasoningEffort && left.supportsSpeed === right.supportsSpeed && (left.supportsPermissionMode ?? false) === (right.supportsPermissionMode ?? false) && left.supportsPlanMode === right.supportsPlanMode && (left.supportsBrowser ?? false) === (right.supportsBrowser ?? false) && (left.supportsComputerUse ?? false) === (right.supportsComputerUse ?? false) && (left.permissionModeChangeDuringTurn ?? false) === (right.permissionModeChangeDuringTurn ?? false) && slashCommandPoliciesEqual(left.slashCommandPolicy, right.slashCommandPolicy) && left.isSettingsLoading === right.isSettingsLoading && !!left.isCapabilityOptionsLoading === !!right.isCapabilityOptionsLoading && !!left.isModelOptionsLoading === !!right.isModelOptionsLoading && left.modelUnavailable === right.modelUnavailable && left.reasoningUnavailable === right.reasoningUnavailable && left.speedUnavailable === right.speedUnavailable && (left.permissionModeUnavailable ?? false) === (right.permissionModeUnavailable ?? false) && (left.planExclusiveWithPermissionMode ?? false) === (right.planExclusiveWithPermissionMode ?? false) && (left.selectedModelValue ?? null) === (right.selectedModelValue ?? null) && (left.selectedReasoningEffortValue ?? null) === (right.selectedReasoningEffortValue ?? null) && (left.selectedSpeedValue ?? null) === (right.selectedSpeedValue ?? null) && (left.selectedPermissionModeValue ?? null) === (right.selectedPermissionModeValue ?? null) && arePermissionConfigsEqual(left.permissionConfig, right.permissionConfig) && (left.selectedProjectPath ?? null) === (right.selectedProjectPath ?? null) && Boolean(left.shouldApplyPreparedProjectSelection) === Boolean(right.shouldApplyPreparedProjectSelection) && Boolean(left.projectLocked) === Boolean(right.projectLocked) && Boolean(left.projectPathIsRemote) === Boolean(right.projectPathIsRemote) && Boolean(left.collapseModelOptionsToLatest) === Boolean(right.collapseModelOptionsToLatest) && areComposerSettingOptionListsEqual(
|
|
5267
5267
|
left.availableModels,
|
|
5268
5268
|
right.availableModels
|
|
5269
5269
|
) && areComposerSettingOptionListsEqual(
|
|
@@ -10729,6 +10729,7 @@ function useAgentGUIComposerPresentation(input) {
|
|
|
10729
10729
|
input.selectedProjectPath,
|
|
10730
10730
|
input.userProjects
|
|
10731
10731
|
),
|
|
10732
|
+
shouldApplyPreparedProjectSelection: input.activeConversationId === null && input.shouldApplyPreparedProjectSelection,
|
|
10732
10733
|
projectLocked: input.activeConversationId !== null,
|
|
10733
10734
|
projectPathIsRemote: input.agentActivityRuntime.projectPathIsRemote,
|
|
10734
10735
|
collapseModelOptionsToLatest: input.providerComposerOptions?.behavior.collapseModelOptionsToLatest === true,
|
|
@@ -10755,6 +10756,7 @@ function useAgentGUIComposerPresentation(input) {
|
|
|
10755
10756
|
input.providerComposerOptions,
|
|
10756
10757
|
input.selectedComposerTargetData.agentTargetId,
|
|
10757
10758
|
input.selectedProjectPath,
|
|
10759
|
+
input.shouldApplyPreparedProjectSelection,
|
|
10758
10760
|
input.userProjects,
|
|
10759
10761
|
optionsReasoningEffort,
|
|
10760
10762
|
sessionSettings,
|
|
@@ -12753,7 +12755,11 @@ function useAgentGUISessionDetailTransport(input) {
|
|
|
12753
12755
|
}
|
|
12754
12756
|
|
|
12755
12757
|
// agent-gui/agentGuiNode/controller/useAgentGUILocalState.ts
|
|
12756
|
-
import {
|
|
12758
|
+
import {
|
|
12759
|
+
useCallback as useCallback26,
|
|
12760
|
+
useRef as useRef19,
|
|
12761
|
+
useState as useState7
|
|
12762
|
+
} from "react";
|
|
12757
12763
|
function useAgentGUILocalState({
|
|
12758
12764
|
data,
|
|
12759
12765
|
userProjectsApi
|
|
@@ -12766,9 +12772,15 @@ function useAgentGUILocalState({
|
|
|
12766
12772
|
const [intent, setIntent] = useState7(
|
|
12767
12773
|
() => data.lastActiveAgentSessionId ? { tag: "requested", id: data.lastActiveAgentSessionId } : { tag: "home" }
|
|
12768
12774
|
);
|
|
12769
|
-
const [
|
|
12770
|
-
|
|
12771
|
-
)
|
|
12775
|
+
const [homeProjectSelection, setHomeProjectSelection] = useState7({ kind: "unresolved_default" });
|
|
12776
|
+
const selectedProjectPath = homeProjectSelection.kind === "resolved" ? homeProjectSelection.projectPath : null;
|
|
12777
|
+
const setSelectedProjectPath = useCallback26((nextProjectPath) => {
|
|
12778
|
+
setHomeProjectSelection((current) => {
|
|
12779
|
+
const currentProjectPath = current.kind === "resolved" ? current.projectPath : null;
|
|
12780
|
+
const projectPath = typeof nextProjectPath === "function" ? nextProjectPath(currentProjectPath) : nextProjectPath;
|
|
12781
|
+
return { kind: "resolved", projectPath };
|
|
12782
|
+
});
|
|
12783
|
+
}, []);
|
|
12772
12784
|
const [isComposerHome, setIsComposerHome] = useState7(
|
|
12773
12785
|
data.lastActiveAgentSessionId === null
|
|
12774
12786
|
);
|
|
@@ -12824,6 +12836,7 @@ function useAgentGUILocalState({
|
|
|
12824
12836
|
railRevealRequest,
|
|
12825
12837
|
requestRailReveal,
|
|
12826
12838
|
selectedProjectPath,
|
|
12839
|
+
shouldApplyPreparedProjectSelection: homeProjectSelection.kind === "unresolved_default",
|
|
12827
12840
|
setActiveConversationId,
|
|
12828
12841
|
setDetailError,
|
|
12829
12842
|
setDraftByScopeKey,
|
|
@@ -18112,6 +18125,7 @@ function useComposerPaletteCatalog({
|
|
|
18112
18125
|
compactSupported,
|
|
18113
18126
|
composerSettings,
|
|
18114
18127
|
capabilityMenuState,
|
|
18128
|
+
capabilityControlsReadOnly,
|
|
18115
18129
|
labels,
|
|
18116
18130
|
uiLanguage,
|
|
18117
18131
|
editorHandleRef
|
|
@@ -18159,6 +18173,9 @@ function useComposerPaletteCatalog({
|
|
|
18159
18173
|
[availableSkills, skillQueryMatch]
|
|
18160
18174
|
);
|
|
18161
18175
|
const availableCapabilities = useMemo22(() => {
|
|
18176
|
+
if (capabilityControlsReadOnly) {
|
|
18177
|
+
return [];
|
|
18178
|
+
}
|
|
18162
18179
|
const entries = [];
|
|
18163
18180
|
if (composerSettings.supportsBrowser) {
|
|
18164
18181
|
entries.push({
|
|
@@ -18178,6 +18195,7 @@ function useComposerPaletteCatalog({
|
|
|
18178
18195
|
}
|
|
18179
18196
|
return entries;
|
|
18180
18197
|
}, [
|
|
18198
|
+
capabilityControlsReadOnly,
|
|
18181
18199
|
composerSettings.supportsBrowser,
|
|
18182
18200
|
composerSettings.supportsComputerUse,
|
|
18183
18201
|
labels.browserUseCapabilityLabel,
|
|
@@ -18199,6 +18217,7 @@ function useComposerPaletteCatalog({
|
|
|
18199
18217
|
description: capDescription,
|
|
18200
18218
|
settingsAriaLabel: capSettingsLabel,
|
|
18201
18219
|
settingsLabel: labels.capabilityInlineSettingsLabel,
|
|
18220
|
+
disabled: capabilityControlsReadOnly,
|
|
18202
18221
|
selectAction: command.capability === "computerUse" && (computerUseInstalled === false || computerUseInstalled === true && (computerUseAuthorization === "needs-authorization" || computerUseAuthorization === "unknown")) ? "settings" : "capability",
|
|
18203
18222
|
capability: command
|
|
18204
18223
|
};
|
|
@@ -18235,6 +18254,7 @@ function useComposerPaletteCatalog({
|
|
|
18235
18254
|
capabilityMenuState?.browserUse?.connectionMode,
|
|
18236
18255
|
capabilityMenuState?.computerUse?.authorization,
|
|
18237
18256
|
capabilityMenuState?.computerUse?.installed,
|
|
18257
|
+
capabilityControlsReadOnly,
|
|
18238
18258
|
filteredCommands,
|
|
18239
18259
|
filteredSkills,
|
|
18240
18260
|
labels.browserUseCapabilityDescription,
|
|
@@ -18753,6 +18773,7 @@ function useComposerSlashActions(input) {
|
|
|
18753
18773
|
promptImagesSupported,
|
|
18754
18774
|
availableSkills = [],
|
|
18755
18775
|
composerSettings,
|
|
18776
|
+
capabilityControlsReadOnly = false,
|
|
18756
18777
|
onDraftContentChange,
|
|
18757
18778
|
onSettingsChange,
|
|
18758
18779
|
onSubmit,
|
|
@@ -18975,6 +18996,9 @@ function useComposerSlashActions(input) {
|
|
|
18975
18996
|
);
|
|
18976
18997
|
const selectCapability = useCallback35(
|
|
18977
18998
|
(capability) => {
|
|
18999
|
+
if (capabilityControlsReadOnly) {
|
|
19000
|
+
return;
|
|
19001
|
+
}
|
|
18978
19002
|
const selectionEffect = resolveSlashCommandSelectionEffect({
|
|
18979
19003
|
provider,
|
|
18980
19004
|
policy: slashCommandPolicy,
|
|
@@ -18985,14 +19009,22 @@ function useComposerSlashActions(input) {
|
|
|
18985
19009
|
executeSlashCommandEffect(selectionEffect);
|
|
18986
19010
|
}
|
|
18987
19011
|
},
|
|
18988
|
-
[
|
|
19012
|
+
[
|
|
19013
|
+
capabilityControlsReadOnly,
|
|
19014
|
+
executeSlashCommandEffect,
|
|
19015
|
+
provider,
|
|
19016
|
+
slashCommandPolicy
|
|
19017
|
+
]
|
|
18989
19018
|
);
|
|
18990
19019
|
const selectCapabilitySettings = useCallback35(
|
|
18991
19020
|
(capability) => {
|
|
19021
|
+
if (capabilityControlsReadOnly) {
|
|
19022
|
+
return;
|
|
19023
|
+
}
|
|
18992
19024
|
onCapabilitySettingsRequest?.(capability.capability);
|
|
18993
19025
|
setIsPaletteOpen(false);
|
|
18994
19026
|
},
|
|
18995
|
-
[onCapabilitySettingsRequest]
|
|
19027
|
+
[capabilityControlsReadOnly, onCapabilitySettingsRequest]
|
|
18996
19028
|
);
|
|
18997
19029
|
const selectSkill = useCallback35(
|
|
18998
19030
|
(skill) => {
|
|
@@ -19064,6 +19096,9 @@ function useComposerSlashActions(input) {
|
|
|
19064
19096
|
policy: slashCommandPolicy
|
|
19065
19097
|
});
|
|
19066
19098
|
if (slashCommandEffect) {
|
|
19099
|
+
if (capabilityControlsReadOnly && slashCommandEffect.kind === "submitPrompt" && (slashCommandEffect.requiredSettingsPatch?.browserUse !== void 0 || slashCommandEffect.requiredSettingsPatch?.computerUse !== void 0)) {
|
|
19100
|
+
return;
|
|
19101
|
+
}
|
|
19067
19102
|
executeSlashCommandEffect(slashCommandEffect);
|
|
19068
19103
|
return;
|
|
19069
19104
|
}
|
|
@@ -19151,6 +19186,9 @@ function useComposerSlashActions(input) {
|
|
|
19151
19186
|
if (event.key === "Tab" || event.key === "Enter") {
|
|
19152
19187
|
event.preventDefault();
|
|
19153
19188
|
const activeEntry = slashPaletteEntries[activeHighlight];
|
|
19189
|
+
if (activeEntry?.type === "capability" && activeEntry.disabled) {
|
|
19190
|
+
return true;
|
|
19191
|
+
}
|
|
19154
19192
|
if (activeEntry?.type === "command") {
|
|
19155
19193
|
selectCommand(activeEntry.command);
|
|
19156
19194
|
} else if (activeEntry?.type === "capability") {
|
|
@@ -21715,6 +21753,7 @@ function AgentProjectDropdown({
|
|
|
21715
21753
|
),
|
|
21716
21754
|
selectedProjectPath: composerSettings.selectedProjectPath,
|
|
21717
21755
|
service: agentHostApi.userProjects?.service ?? null,
|
|
21756
|
+
shouldApplyPreparedSelection: composerSettings.shouldApplyPreparedProjectSelection === true,
|
|
21718
21757
|
onDismissAutoFocus,
|
|
21719
21758
|
onProjectMissingChange,
|
|
21720
21759
|
onProjectPathChange
|
|
@@ -23809,6 +23848,7 @@ function AgentSlashCommandPalette({
|
|
|
23809
23848
|
return /* @__PURE__ */ jsxs23("div", { className: paletteStyles.palette, role: "listbox", "aria-label": label, children: [
|
|
23810
23849
|
entries.map((entry, index) => {
|
|
23811
23850
|
const isHighlighted = index === highlightedIndex;
|
|
23851
|
+
const isDisabled = entry.type === "capability" && entry.disabled === true;
|
|
23812
23852
|
const groupType = entryGroupType(entry);
|
|
23813
23853
|
const entryIcon = slashPaletteEntryIcon(entry);
|
|
23814
23854
|
const groupHeader = showGroupHeaders && firstEntryIndexByType.get(groupType) === index ? /* @__PURE__ */ jsx32(
|
|
@@ -23838,14 +23878,19 @@ function AgentSlashCommandPalette({
|
|
|
23838
23878
|
ref: isHighlighted ? highlightedOptionRef : null,
|
|
23839
23879
|
className: cn(
|
|
23840
23880
|
paletteStyles.option,
|
|
23841
|
-
isHighlighted && "bg-[var(--transparency-block)]"
|
|
23881
|
+
isHighlighted && "bg-[var(--transparency-block)]",
|
|
23882
|
+
isDisabled && "cursor-not-allowed text-[var(--agent-gui-text-tertiary)] opacity-60 hover:bg-transparent active:bg-transparent"
|
|
23842
23883
|
),
|
|
23843
23884
|
role: "option",
|
|
23844
23885
|
"aria-selected": isHighlighted,
|
|
23886
|
+
"aria-disabled": isDisabled || void 0,
|
|
23845
23887
|
"data-highlighted": isHighlighted ? "" : void 0,
|
|
23846
23888
|
onMouseEnter: () => onHighlightChange(index),
|
|
23847
23889
|
onMouseDown: (event) => event.preventDefault(),
|
|
23848
23890
|
onClick: () => {
|
|
23891
|
+
if (isDisabled) {
|
|
23892
|
+
return;
|
|
23893
|
+
}
|
|
23849
23894
|
if (entry.type === "command") {
|
|
23850
23895
|
onSelect(entry.command);
|
|
23851
23896
|
return;
|
|
@@ -23874,6 +23919,7 @@ function AgentSlashCommandPalette({
|
|
|
23874
23919
|
{
|
|
23875
23920
|
"aria-label": entry.settingsAriaLabel ?? entry.settingsLabel,
|
|
23876
23921
|
className: paletteStyles.settingsButton,
|
|
23922
|
+
disabled: isDisabled,
|
|
23877
23923
|
title: entry.settingsAriaLabel ?? entry.settingsLabel,
|
|
23878
23924
|
type: "button",
|
|
23879
23925
|
onClick: (event) => {
|
|
@@ -27299,6 +27345,7 @@ function AgentComposer(props) {
|
|
|
27299
27345
|
onDraftContentChange,
|
|
27300
27346
|
onSettingsChange,
|
|
27301
27347
|
capabilityMenuState,
|
|
27348
|
+
capabilityControlsReadOnly = false,
|
|
27302
27349
|
onSubmit,
|
|
27303
27350
|
onSubmitGuidance,
|
|
27304
27351
|
onInterruptCurrentTurn,
|
|
@@ -27400,6 +27447,7 @@ function AgentComposer(props) {
|
|
|
27400
27447
|
compactSupported,
|
|
27401
27448
|
composerSettings,
|
|
27402
27449
|
capabilityMenuState,
|
|
27450
|
+
capabilityControlsReadOnly,
|
|
27403
27451
|
labels,
|
|
27404
27452
|
uiLanguage,
|
|
27405
27453
|
editorHandleRef
|
|
@@ -27497,6 +27545,7 @@ function AgentComposer(props) {
|
|
|
27497
27545
|
promptImagesSupported: canUploadAttachment && promptImagesSupported,
|
|
27498
27546
|
availableSkills,
|
|
27499
27547
|
composerSettings,
|
|
27548
|
+
capabilityControlsReadOnly,
|
|
27500
27549
|
onDraftContentChange,
|
|
27501
27550
|
onSettingsChange,
|
|
27502
27551
|
onSubmit,
|
|
@@ -36614,6 +36663,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
36614
36663
|
onLinkAction,
|
|
36615
36664
|
onHandoffConversation,
|
|
36616
36665
|
capabilityMenuState,
|
|
36666
|
+
capabilityControlsReadOnly = false,
|
|
36617
36667
|
onCapabilitySettingsRequest,
|
|
36618
36668
|
onAgentProviderLogin,
|
|
36619
36669
|
onRequestWorkspaceReferences,
|
|
@@ -36868,6 +36918,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
36868
36918
|
labels: composerLabels,
|
|
36869
36919
|
workspaceUserProjectI18n,
|
|
36870
36920
|
capabilityMenuState,
|
|
36921
|
+
capabilityControlsReadOnly,
|
|
36871
36922
|
onDraftContentChange: updateDraftContent,
|
|
36872
36923
|
onProjectPathChange: updateSelectedProjectPath,
|
|
36873
36924
|
onSettingsChange: updateComposerSettings,
|
|
@@ -36892,6 +36943,7 @@ var AgentGUIDetailPane = memo12(function AgentGUIDetailPane2({
|
|
|
36892
36943
|
[
|
|
36893
36944
|
canQueueWhileBusy,
|
|
36894
36945
|
capabilityMenuState,
|
|
36946
|
+
capabilityControlsReadOnly,
|
|
36895
36947
|
canSwitchComposerProvider,
|
|
36896
36948
|
composerDisabled,
|
|
36897
36949
|
composerDisabledReason,
|
|
@@ -37980,6 +38032,7 @@ function AgentGUINodeView({
|
|
|
37980
38032
|
onLinkAction,
|
|
37981
38033
|
onHandoffConversation,
|
|
37982
38034
|
capabilityMenuState,
|
|
38035
|
+
capabilityControlsReadOnly = false,
|
|
37983
38036
|
onCapabilitySettingsRequest,
|
|
37984
38037
|
isActive = true,
|
|
37985
38038
|
isVisible = true,
|
|
@@ -38568,6 +38621,7 @@ function AgentGUINodeView({
|
|
|
38568
38621
|
onLinkAction,
|
|
38569
38622
|
onHandoffConversation,
|
|
38570
38623
|
capabilityMenuState,
|
|
38624
|
+
capabilityControlsReadOnly,
|
|
38571
38625
|
onCapabilitySettingsRequest,
|
|
38572
38626
|
onAgentProviderLogin,
|
|
38573
38627
|
onRequestWorkspaceReferences: requestWorkspaceReferences,
|
|
@@ -38886,7 +38940,7 @@ function areAgentGUINodePropsEqual(previous, next) {
|
|
|
38886
38940
|
const pc = previous.hostCapabilities, nc = next.hostCapabilities;
|
|
38887
38941
|
const pa = previous.hostActions, na = next.hostActions;
|
|
38888
38942
|
const ps = previous.renderSlots, ns = next.renderSlots;
|
|
38889
|
-
return pi.nodeId === ni.nodeId && pi.workspaceId === ni.workspaceId && pi.currentUserId === ni.currentUserId && pi.title === ni.title && pw.path === nw.path && pw.fileReferenceAdapter === nw.fileReferenceAdapter && pw.onRequestGitBranches === nw.onRequestGitBranches && pw.selectProjectDirectory === nw.selectProjectDirectory && pw.resolveExternalPromptEntries === nw.resolveExternalPromptEntries && pw.prepareExternalPromptFiles === nw.prepareExternalPromptFiles && pw.promptAssetLimit === nw.promptAssetLimit && pw.projectDirectorySourceAggregator === nw.projectDirectorySourceAggregator && pw.referenceSourceAggregator === nw.referenceSourceAggregator && pw.resolveReferenceEntryIconUrl === nw.resolveReferenceEntryIconUrl && pw.resolveMentionReferenceTarget === nw.resolveMentionReferenceTarget && pw.resolveReferenceInitialTarget === nw.resolveReferenceInitialTarget && pw.onFileReferencesAdded === nw.onFileReferencesAdded && pw.agentSettings.avoidGroupingEdits === nw.agentSettings.avoidGroupingEdits && pc.referenceProvenanceFilterCatalog === nc.referenceProvenanceFilterCatalog && pc.referenceProvenanceFilterEnabled === nc.referenceProvenanceFilterEnabled && agentGuiStateEquals(previous.state, next.state) && pf.position.x === nf.position.x && pf.position.y === nf.position.y && pf.width === nf.width && pf.height === nf.height && pf.desktopSize.width === nf.desktopSize.width && pf.desktopSize.height === nf.desktopSize.height && pf.isMaximized === nf.isMaximized && pf.isActive === nf.isActive && pf.isVisible === nf.isVisible && pf.embedded === nf.embedded && pf.previewMode === nf.previewMode && pf.conversationRailAutoCollapseWidthPx === nf.conversationRailAutoCollapseWidthPx && pr.composerFocusSequence === nr.composerFocusSequence && pr.composerAppend === nr.composerAppend && pr.newConversationSequence === nr.newConversationSequence && pr.sessionAction === nr.sessionAction && pr.openSession === nr.openSession && pr.prefillPrompt === nr.prefillPrompt && pr.agentStatusController === nr.agentStatusController && pc.capabilityMenuState === nc.capabilityMenuState && pc.accountMenuState === nc.accountMenuState && pc.agentTargets === nc.agentTargets && pc.agentTargetsLoading === nc.agentTargetsLoading && pc.handoffAgentTargets === nc.handoffAgentTargets && pc.handoffAgentTargetsLoading === nc.handoffAgentTargetsLoading && pc.providerRailAllPresentation?.iconUrl === nc.providerRailAllPresentation?.iconUrl && pc.providerRailMode === nc.providerRailMode && pc.comingSoonProviders === nc.comingSoonProviders && pc.providerReadinessGates === nc.providerReadinessGates && pc.defaultAgentTargetId === nc.defaultAgentTargetId && pc.providerAuthAccountLabels === nc.providerAuthAccountLabels && pc.mentionService === nc.mentionService && pc.workspaceAppIcons === nc.workspaceAppIcons && pc.disabledHomeSuggestions === nc.disabledHomeSuggestions && pa.onLinkAction === na.onLinkAction && pa.onHandoffConversation === na.onHandoffConversation && pa.onCapabilitySettingsRequest === na.onCapabilitySettingsRequest && pa.onAgentProviderLogin === na.onAgentProviderLogin && pa.onAgentEnvPanelOpen === na.onAgentEnvPanelOpen && pa.onOpenConversationWindow === na.onOpenConversationWindow && pa.onClose === na.onClose && pa.onResize === na.onResize && pa.onUpdateNode === na.onUpdateNode && pa.onRememberComposerDefaults === na.onRememberComposerDefaults && pa.isMuted === na.isMuted && pa.onMinimize === na.onMinimize && pa.onToggleMaximize === na.onToggleMaximize && pa.onShowMessage === na.onShowMessage && pa.onEngagementEvent === na.onEngagementEvent && pa.onConversationRailLayoutChange === na.onConversationRailLayoutChange && ps.providerRailEmpty === ns.providerRailEmpty && ps.providerUnavailableState === ns.providerUnavailableState && ps.sidebarFooter === ns.sidebarFooter;
|
|
38943
|
+
return pi.nodeId === ni.nodeId && pi.workspaceId === ni.workspaceId && pi.currentUserId === ni.currentUserId && pi.title === ni.title && pw.path === nw.path && pw.fileReferenceAdapter === nw.fileReferenceAdapter && pw.onRequestGitBranches === nw.onRequestGitBranches && pw.selectProjectDirectory === nw.selectProjectDirectory && pw.resolveExternalPromptEntries === nw.resolveExternalPromptEntries && pw.prepareExternalPromptFiles === nw.prepareExternalPromptFiles && pw.promptAssetLimit === nw.promptAssetLimit && pw.projectDirectorySourceAggregator === nw.projectDirectorySourceAggregator && pw.referenceSourceAggregator === nw.referenceSourceAggregator && pw.resolveReferenceEntryIconUrl === nw.resolveReferenceEntryIconUrl && pw.resolveMentionReferenceTarget === nw.resolveMentionReferenceTarget && pw.resolveReferenceInitialTarget === nw.resolveReferenceInitialTarget && pw.onFileReferencesAdded === nw.onFileReferencesAdded && pw.agentSettings.avoidGroupingEdits === nw.agentSettings.avoidGroupingEdits && pc.referenceProvenanceFilterCatalog === nc.referenceProvenanceFilterCatalog && pc.referenceProvenanceFilterEnabled === nc.referenceProvenanceFilterEnabled && agentGuiStateEquals(previous.state, next.state) && pf.position.x === nf.position.x && pf.position.y === nf.position.y && pf.width === nf.width && pf.height === nf.height && pf.desktopSize.width === nf.desktopSize.width && pf.desktopSize.height === nf.desktopSize.height && pf.isMaximized === nf.isMaximized && pf.isActive === nf.isActive && pf.isVisible === nf.isVisible && pf.embedded === nf.embedded && pf.previewMode === nf.previewMode && pf.conversationRailAutoCollapseWidthPx === nf.conversationRailAutoCollapseWidthPx && pr.composerFocusSequence === nr.composerFocusSequence && pr.composerAppend === nr.composerAppend && pr.newConversationSequence === nr.newConversationSequence && pr.sessionAction === nr.sessionAction && pr.openSession === nr.openSession && pr.prefillPrompt === nr.prefillPrompt && pr.agentStatusController === nr.agentStatusController && pc.capabilityMenuState === nc.capabilityMenuState && pc.capabilityControlsReadOnly === nc.capabilityControlsReadOnly && pc.accountMenuState === nc.accountMenuState && pc.agentTargets === nc.agentTargets && pc.agentTargetsLoading === nc.agentTargetsLoading && pc.handoffAgentTargets === nc.handoffAgentTargets && pc.handoffAgentTargetsLoading === nc.handoffAgentTargetsLoading && pc.providerRailAllPresentation?.iconUrl === nc.providerRailAllPresentation?.iconUrl && pc.providerRailMode === nc.providerRailMode && pc.comingSoonProviders === nc.comingSoonProviders && pc.providerReadinessGates === nc.providerReadinessGates && pc.defaultAgentTargetId === nc.defaultAgentTargetId && pc.providerAuthAccountLabels === nc.providerAuthAccountLabels && pc.mentionService === nc.mentionService && pc.workspaceAppIcons === nc.workspaceAppIcons && pc.disabledHomeSuggestions === nc.disabledHomeSuggestions && pa.onLinkAction === na.onLinkAction && pa.onHandoffConversation === na.onHandoffConversation && pa.onCapabilitySettingsRequest === na.onCapabilitySettingsRequest && pa.onAgentProviderLogin === na.onAgentProviderLogin && pa.onAgentEnvPanelOpen === na.onAgentEnvPanelOpen && pa.onOpenConversationWindow === na.onOpenConversationWindow && pa.onClose === na.onClose && pa.onResize === na.onResize && pa.onUpdateNode === na.onUpdateNode && pa.onRememberComposerDefaults === na.onRememberComposerDefaults && pa.isMuted === na.isMuted && pa.onMinimize === na.onMinimize && pa.onToggleMaximize === na.onToggleMaximize && pa.onShowMessage === na.onShowMessage && pa.onEngagementEvent === na.onEngagementEvent && pa.onConversationRailLayoutChange === na.onConversationRailLayoutChange && ps.providerRailEmpty === ns.providerRailEmpty && ps.providerUnavailableState === ns.providerUnavailableState && ps.sidebarFooter === ns.sidebarFooter;
|
|
38890
38944
|
}
|
|
38891
38945
|
|
|
38892
38946
|
// agent-gui/agentGuiNode/AgentGUIMentionServiceBoundary.tsx
|
|
@@ -40033,6 +40087,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
40033
40087
|
} = runtimeRequests;
|
|
40034
40088
|
const {
|
|
40035
40089
|
capabilityMenuState,
|
|
40090
|
+
capabilityControlsReadOnly = false,
|
|
40036
40091
|
accountMenuState = null,
|
|
40037
40092
|
agentTargets,
|
|
40038
40093
|
agentTargetsLoading = false,
|
|
@@ -40383,6 +40438,7 @@ var AgentGUINode = memo14(function AgentGUINode2({
|
|
|
40383
40438
|
onLinkAction: handleLinkAction,
|
|
40384
40439
|
onHandoffConversation,
|
|
40385
40440
|
capabilityMenuState,
|
|
40441
|
+
capabilityControlsReadOnly,
|
|
40386
40442
|
onCapabilitySettingsRequest,
|
|
40387
40443
|
onAgentProviderLogin: onAgentProviderLogin ? handleAgentProviderLogin : void 0,
|
|
40388
40444
|
onAgentEnvPanelOpen,
|
|
@@ -40523,4 +40579,4 @@ export {
|
|
|
40523
40579
|
AgentHandoffMenu,
|
|
40524
40580
|
AgentGUI
|
|
40525
40581
|
};
|
|
40526
|
-
//# sourceMappingURL=chunk-
|
|
40582
|
+
//# sourceMappingURL=chunk-WPV23OY7.js.map
|