@tutti-os/agent-gui 0.0.107 → 0.0.109
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/{AgentGUI-Do6py-T_.d.ts → AgentGUI-BSr3cWcJ.d.ts} +6 -3
- package/dist/AgentRichTextReadonly-42TUVYX5.js +18 -0
- package/dist/agent-conversation/index.d.ts +4 -4
- package/dist/agent-conversation/index.js +13 -12
- package/dist/agent-conversation/index.js.map +1 -1
- package/dist/agent-env/index.js +1 -1
- package/dist/agent-gui.d.ts +5 -4
- package/dist/agent-gui.js +27 -25
- package/dist/agent-message-center/index.d.ts +12 -3
- package/dist/agent-message-center/index.js +75 -31
- package/dist/agent-message-center/index.js.map +1 -1
- package/dist/{agentConversationVM-Bf3Zv3iI.d.ts → agentConversationVM-D3Dn2LqN.d.ts} +18 -2
- package/dist/{agentGuiNodeTypes-DbgQBiYz.d.ts → agentGuiNodeTypes-CR_l4HhU.d.ts} +6 -3
- package/dist/agents.d.ts +1 -1
- package/dist/agents.js +1 -1
- package/dist/app/renderer/agentactivity.css +65 -3
- package/dist/app/renderer/assets/icons/agent-vinyl-beta-tag.svg +5 -0
- package/dist/{chunk-OWW7CU4U.js → chunk-25BPR75P.js} +2 -2
- package/dist/{chunk-N4WVVCNI.js → chunk-2QHKXI5N.js} +2 -2
- package/dist/{chunk-ZWY32ZKZ.js → chunk-34JD75OB.js} +1296 -737
- package/dist/chunk-34JD75OB.js.map +1 -0
- package/dist/{chunk-KJQERFKX.js → chunk-6CUELYIF.js} +3 -3
- package/dist/chunk-6CUELYIF.js.map +1 -0
- package/dist/{chunk-TKBEVCHG.js → chunk-7BN2WQ2M.js} +32 -2
- package/dist/chunk-7BN2WQ2M.js.map +1 -0
- package/dist/chunk-7KVZPJ3O.js +25 -0
- package/dist/chunk-7KVZPJ3O.js.map +1 -0
- package/dist/{chunk-C35SNDVZ.js → chunk-7OYHDOGG.js} +2 -1
- package/dist/chunk-7OYHDOGG.js.map +1 -0
- package/dist/{chunk-P3CVAWGJ.js → chunk-A5UXTAYJ.js} +5 -5
- package/dist/{chunk-4ZWV57MF.js → chunk-AIZJHA4Q.js} +14 -9
- package/dist/chunk-AIZJHA4Q.js.map +1 -0
- package/dist/{chunk-QY22OBJS.js → chunk-AY5AFMT2.js} +8 -84
- package/dist/chunk-AY5AFMT2.js.map +1 -0
- package/dist/{chunk-V5ROOS2O.js → chunk-BM3CSFWU.js} +22 -6
- package/dist/chunk-BM3CSFWU.js.map +1 -0
- package/dist/{chunk-F7Q7QK42.js → chunk-BRLKORQI.js} +1432 -1902
- package/dist/chunk-BRLKORQI.js.map +1 -0
- package/dist/{chunk-LDZ6C3YV.js → chunk-E74BMFHI.js} +3 -3
- package/dist/chunk-E74BMFHI.js.map +1 -0
- package/dist/{chunk-ZSJBCZUH.js → chunk-EBXOSQ5G.js} +102 -73
- package/dist/chunk-EBXOSQ5G.js.map +1 -0
- package/dist/chunk-J4K7KIFZ.js +75 -0
- package/dist/chunk-J4K7KIFZ.js.map +1 -0
- package/dist/{chunk-UFIEUC3Y.js → chunk-JBX3JPTC.js} +9 -8
- package/dist/chunk-JBX3JPTC.js.map +1 -0
- package/dist/{chunk-4YVKAPKW.js → chunk-JLRPIEIE.js} +2 -17
- package/dist/chunk-JLRPIEIE.js.map +1 -0
- package/dist/{chunk-BXOKBZH4.js → chunk-K7WFXVSD.js} +81 -45
- package/dist/chunk-K7WFXVSD.js.map +1 -0
- package/dist/{chunk-4YG7YK7S.js → chunk-L2GENUG3.js} +3 -3
- package/dist/{chunk-J2HG7UCP.js → chunk-OEYXSD3O.js} +3 -3
- package/dist/{chunk-L3GMMGRS.js → chunk-R2ZADXRB.js} +2 -2
- package/dist/chunk-R7AXDQCA.js +146 -0
- package/dist/chunk-R7AXDQCA.js.map +1 -0
- package/dist/{chunk-7MPN2JGL.js → chunk-U4CVBCHD.js} +37 -119
- package/dist/chunk-U4CVBCHD.js.map +1 -0
- package/dist/{chunk-4YCCATI4.js → chunk-USIFGHT3.js} +17 -4
- package/dist/chunk-USIFGHT3.js.map +1 -0
- package/dist/{chunk-7BXWPI4F.js → chunk-VMQNG2KI.js} +13 -1
- package/dist/{chunk-7BXWPI4F.js.map → chunk-VMQNG2KI.js.map} +1 -1
- package/dist/{chunk-SN6UYX54.js → chunk-W6TO6K2X.js} +4 -4
- package/dist/{chunk-UGVI47X6.js → chunk-YNSXUEIR.js} +6 -6
- package/dist/context-mention-palette/index.js +13 -12
- package/dist/{contribution-C6K5YfJ7.d.ts → contribution-C2LDwLA7.d.ts} +3 -2
- package/dist/dock-icons.js +3 -3
- package/dist/i18n/index.d.ts +31 -1
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +8 -7
- package/dist/index.js +27 -25
- package/dist/index.js.map +1 -1
- package/dist/mention-search.js +11 -10
- package/dist/provider-icons.js +1 -1
- package/dist/provider-identity.js +1 -1
- package/dist/{types-CnT8rNUI.d.ts → types-yF_0mrNS.d.ts} +1 -0
- package/dist/workbench/contribution.d.ts +2 -2
- package/dist/workbench/contribution.js +11 -11
- package/dist/workbench/index.d.ts +4 -4
- package/dist/workbench/index.js +22 -28
- package/dist/workbench/launch.d.ts +11 -14
- package/dist/workbench/launch.js +5 -11
- package/dist/workbench/providerCatalog.js +2 -2
- package/dist/workbench/sessionTitle.js +3 -3
- package/dist/workbench/state.d.ts +2 -12
- package/dist/workbench/state.js +3 -9
- package/dist/workspace-agent-generated-files.js +2 -1
- package/dist/workspace-query-cache.d.ts +19 -0
- package/dist/workspace-query-cache.js +7 -0
- package/dist/workspace-query-cache.js.map +1 -0
- package/package.json +21 -14
- package/dist/@-bold-lined-BLLFKBFI.svg +0 -10
- package/dist/AgentRichTextReadonly-F6PHC5SX.js +0 -18
- package/dist/add-lined-bold-5QPUDZCU.svg +0 -3
- package/dist/chunk-4YCCATI4.js.map +0 -1
- package/dist/chunk-4YVKAPKW.js.map +0 -1
- package/dist/chunk-4ZWV57MF.js.map +0 -1
- package/dist/chunk-7MPN2JGL.js.map +0 -1
- package/dist/chunk-BXOKBZH4.js.map +0 -1
- package/dist/chunk-C35SNDVZ.js.map +0 -1
- package/dist/chunk-F7Q7QK42.js.map +0 -1
- package/dist/chunk-H6IQ63DQ.js +0 -14
- package/dist/chunk-H6IQ63DQ.js.map +0 -1
- package/dist/chunk-KJQERFKX.js.map +0 -1
- package/dist/chunk-LDZ6C3YV.js.map +0 -1
- package/dist/chunk-QY22OBJS.js.map +0 -1
- package/dist/chunk-TKBEVCHG.js.map +0 -1
- package/dist/chunk-UFIEUC3Y.js.map +0 -1
- package/dist/chunk-V5ROOS2O.js.map +0 -1
- package/dist/chunk-ZSJBCZUH.js.map +0 -1
- package/dist/chunk-ZWY32ZKZ.js.map +0 -1
- package/dist/claudecode-flat-filled-NHO4JCVK.svg +0 -10
- package/dist/codex-flat-filled-WYHCF5VR.svg +0 -10
- package/dist/cursor-flat-filled-CL7N3BTZ.svg +0 -3
- package/dist/handoff-lined-4WQUBVG3.svg +0 -11
- package/dist/open-link-lined-JWEKUKME.svg +0 -4
- package/dist/opencode-flat-filled-CYAJPX45.svg +0 -4
- package/dist/tutti-flat-filled-K32QBTZE.svg +0 -12
- /package/dist/{AgentRichTextReadonly-F6PHC5SX.js.map → AgentRichTextReadonly-42TUVYX5.js.map} +0 -0
- /package/dist/{chunk-OWW7CU4U.js.map → chunk-25BPR75P.js.map} +0 -0
- /package/dist/{chunk-N4WVVCNI.js.map → chunk-2QHKXI5N.js.map} +0 -0
- /package/dist/{chunk-P3CVAWGJ.js.map → chunk-A5UXTAYJ.js.map} +0 -0
- /package/dist/{chunk-4YG7YK7S.js.map → chunk-L2GENUG3.js.map} +0 -0
- /package/dist/{chunk-J2HG7UCP.js.map → chunk-OEYXSD3O.js.map} +0 -0
- /package/dist/{chunk-L3GMMGRS.js.map → chunk-R2ZADXRB.js.map} +0 -0
- /package/dist/{chunk-SN6UYX54.js.map → chunk-W6TO6K2X.js.map} +0 -0
- /package/dist/{chunk-UGVI47X6.js.map → chunk-YNSXUEIR.js.map} +0 -0
|
@@ -2,13 +2,14 @@ import * as react from 'react';
|
|
|
2
2
|
import { PropsWithChildren, JSX, HTMLAttributes, 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
|
-
import { u as AgentHostAgentSessionComposerSettings, y as AgentHostUnactivateAgentSessionResult, h as AgentGUIAgentTarget, n as AgentGUIProvider, z as AgentPromptContentBlock, m as AgentGUINodeData, P as Point, o as AgentGUIProviderRailAllPresentation, p as AgentGUIProviderRailMode, q as AgentGUIProviderReadinessGate, l as AgentGUIHomeSuggestionId, N as NodeFrame, e as AgentGUIAgentDirectorySnapshot, k as AgentGUIAllAgentsPresentation } from './types-
|
|
6
|
-
import {
|
|
5
|
+
import { u as AgentHostAgentSessionComposerSettings, y as AgentHostUnactivateAgentSessionResult, h as AgentGUIAgentTarget, n as AgentGUIProvider, z as AgentPromptContentBlock, m as AgentGUINodeData, P as Point, o as AgentGUIProviderRailAllPresentation, p as AgentGUIProviderRailMode, q as AgentGUIProviderReadinessGate, l as AgentGUIHomeSuggestionId, N as NodeFrame, e as AgentGUIAgentDirectorySnapshot, k as AgentGUIAllAgentsPresentation } from './types-yF_0mrNS.js';
|
|
6
|
+
import { WorkspaceQueryCache } from './workspace-query-cache.js';
|
|
7
|
+
import { A as AgentComposerDraft, q as AgentSessionCommand, d as AgentGUIProviderSkillOption, b as AgentGUIComposerSettingsVM, e as AgentGUIQueueStatus, f as AgentGUIQueuedPromptVM, l as AgentMessageMarkdownWorkspaceAppIcon, r as AgentSlashCommandCapability, c as AgentGUINodeViewModel, n as AgentProbeSnapshot, a as AgentComposerDraftFile, i as AgentHostInputApi } from './agentGuiNodeTypes-CR_l4HhU.js';
|
|
7
8
|
import { WorkspaceFileReference, ReferenceLocateTarget, WorkspaceFileReferenceAdapter, ReferenceProvenanceCatalog } from '@tutti-os/workspace-file-reference/contracts';
|
|
8
9
|
import { A as AgentContextMentionItem } from './agentFileMentionContracts-B70VnPWO.js';
|
|
9
10
|
import { WorkspaceFileEntry } from '@tutti-os/workspace-file-manager/services';
|
|
10
11
|
import { ReferenceSourceAggregator } from '@tutti-os/workspace-file-reference/core';
|
|
11
|
-
import { b as AgentConversationPromptVM, e as WorkspaceLinkAction } from './agentConversationVM-
|
|
12
|
+
import { b as AgentConversationPromptVM, e as WorkspaceLinkAction } from './agentConversationVM-D3Dn2LqN.js';
|
|
12
13
|
import { AgentContextMentionProvider } from './context-mention-provider.js';
|
|
13
14
|
import { WorkspaceUserProjectI18nRuntime } from '@tutti-os/workspace-user-project/i18n';
|
|
14
15
|
import { WorkspaceUserProjectSelectChangeAction } from '@tutti-os/workspace-user-project/ui';
|
|
@@ -306,6 +307,7 @@ interface AgentActivityRuntime {
|
|
|
306
307
|
updateSessionSettings(input: AgentActivityRuntimeUpdateSessionSettingsInput): Promise<AgentActivityRuntimeUpdateSessionSettingsResult>;
|
|
307
308
|
getSnapshot(workspaceId: string): AgentActivitySnapshot;
|
|
308
309
|
getSessionEngine(workspaceId: string): AgentSessionEngine;
|
|
310
|
+
getSessionSectionsQueryCache?(workspaceId: string): WorkspaceQueryCache<unknown>;
|
|
309
311
|
listSessionMessages(input: AgentActivityRuntimeListSessionMessagesInput): Promise<AgentActivityMessagePage>;
|
|
310
312
|
listAgentGeneratedFiles?(input: AgentActivityRuntimeListGeneratedFilesInput): Promise<AgentActivityRuntimeGeneratedFileList>;
|
|
311
313
|
listSessionsPage?(input: AgentActivityRuntimeListSessionsPageInput): Promise<AgentActivityRuntimeSessionPageResult>;
|
|
@@ -692,6 +694,7 @@ interface AgentComposerProps {
|
|
|
692
694
|
usageLimitsLabel: string;
|
|
693
695
|
usageCompactAction: string;
|
|
694
696
|
approvalLead: string;
|
|
697
|
+
fileChangeApprovalLead: string;
|
|
695
698
|
planLead: string;
|
|
696
699
|
planModes: Array<{
|
|
697
700
|
id: string;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AgentRichTextReadonly
|
|
3
|
+
} from "./chunk-JBX3JPTC.js";
|
|
4
|
+
import "./chunk-OEYXSD3O.js";
|
|
5
|
+
import "./chunk-LUGELG5V.js";
|
|
6
|
+
import "./chunk-KPMQGPYU.js";
|
|
7
|
+
import "./chunk-W6TO6K2X.js";
|
|
8
|
+
import "./chunk-PJP5BUU6.js";
|
|
9
|
+
import "./chunk-7KVZPJ3O.js";
|
|
10
|
+
import "./chunk-25BPR75P.js";
|
|
11
|
+
import "./chunk-7BN2WQ2M.js";
|
|
12
|
+
import "./chunk-D2JUDUYY.js";
|
|
13
|
+
import "./chunk-6CUELYIF.js";
|
|
14
|
+
import "./chunk-YNSXUEIR.js";
|
|
15
|
+
export {
|
|
16
|
+
AgentRichTextReadonly
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=AgentRichTextReadonly-42TUVYX5.js.map
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode, JSX } from 'react';
|
|
3
|
-
import { c as AgentConversationVM, e as WorkspaceLinkAction, d as WorkspaceAgentSessionDetailViewModel } from '../agentConversationVM-
|
|
4
|
-
export { B as BuildWorkspaceAgentSessionDetailInput, W as WorkspaceAgentActivityTimelineItem, f as buildWorkspaceAgentSessionDetailViewModel } from '../agentConversationVM-
|
|
5
|
-
import { d as AgentGUIProviderSkillOption, l as AgentMessageMarkdownWorkspaceAppIcon } from '../agentGuiNodeTypes-
|
|
3
|
+
import { c as AgentConversationVM, e as WorkspaceLinkAction, d as WorkspaceAgentSessionDetailViewModel } from '../agentConversationVM-D3Dn2LqN.js';
|
|
4
|
+
export { B as BuildWorkspaceAgentSessionDetailInput, W as WorkspaceAgentActivityTimelineItem, f as buildWorkspaceAgentSessionDetailViewModel } from '../agentConversationVM-D3Dn2LqN.js';
|
|
5
|
+
import { d as AgentGUIProviderSkillOption, l as AgentMessageMarkdownWorkspaceAppIcon } from '../agentGuiNodeTypes-CR_l4HhU.js';
|
|
6
6
|
export { W as WorkspaceAgentActivityCard } from '../workspaceAgentActivityListTypes-DZfS_HgG.js';
|
|
7
7
|
import '@tutti-os/workspace-issue-manager/core';
|
|
8
8
|
import '@tutti-os/agent-activity-core';
|
|
9
|
-
import '../types-
|
|
9
|
+
import '../types-yF_0mrNS.js';
|
|
10
10
|
import '@tutti-os/workspace-user-project/contracts';
|
|
11
11
|
import '../pastedTextKinds-D-XuInaS.js';
|
|
12
12
|
|
|
@@ -6,28 +6,29 @@ import {
|
|
|
6
6
|
projectAgentConversationVM,
|
|
7
7
|
reconcileProjectedAgentConversationVM,
|
|
8
8
|
useProjectedAgentConversation
|
|
9
|
-
} from "../chunk-
|
|
10
|
-
import "../chunk-
|
|
11
|
-
import "../chunk-
|
|
9
|
+
} from "../chunk-BRLKORQI.js";
|
|
10
|
+
import "../chunk-JBX3JPTC.js";
|
|
11
|
+
import "../chunk-VMQNG2KI.js";
|
|
12
12
|
import "../chunk-FGLQZ6I4.js";
|
|
13
13
|
import "../chunk-XJ34OIEQ.js";
|
|
14
|
-
import "../chunk-
|
|
14
|
+
import "../chunk-R7AXDQCA.js";
|
|
15
|
+
import "../chunk-OEYXSD3O.js";
|
|
15
16
|
import "../chunk-LUGELG5V.js";
|
|
16
|
-
import "../chunk-
|
|
17
|
+
import "../chunk-U4CVBCHD.js";
|
|
17
18
|
import "../chunk-KPMQGPYU.js";
|
|
18
|
-
import "../chunk-
|
|
19
|
+
import "../chunk-E74BMFHI.js";
|
|
19
20
|
import "../chunk-F5UR6EJG.js";
|
|
20
|
-
import "../chunk-
|
|
21
|
+
import "../chunk-W6TO6K2X.js";
|
|
21
22
|
import "../chunk-PJP5BUU6.js";
|
|
22
|
-
import "../chunk-
|
|
23
|
+
import "../chunk-7KVZPJ3O.js";
|
|
23
24
|
import "../chunk-MIJXEELH.js";
|
|
24
25
|
import {
|
|
25
26
|
translate
|
|
26
|
-
} from "../chunk-
|
|
27
|
-
import "../chunk-
|
|
27
|
+
} from "../chunk-25BPR75P.js";
|
|
28
|
+
import "../chunk-7BN2WQ2M.js";
|
|
28
29
|
import "../chunk-D2JUDUYY.js";
|
|
29
|
-
import "../chunk-
|
|
30
|
-
import "../chunk-
|
|
30
|
+
import "../chunk-6CUELYIF.js";
|
|
31
|
+
import "../chunk-YNSXUEIR.js";
|
|
31
32
|
|
|
32
33
|
// shared/WorkspaceAgentSessionDetail.tsx
|
|
33
34
|
import { useMemo } from "react";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../shared/WorkspaceAgentSessionDetail.tsx"],"sourcesContent":["import { useMemo, type JSX } from \"react\";\nimport type { WorkspaceLinkAction } from \"../contexts/workspace/presentation/renderer/actions/workspaceLinkActions\";\nimport { translate } from \"../i18n/index\";\nimport { AgentConversationFlow } from \"./agentConversation/components/AgentConversationFlow\";\nimport { useProjectedAgentConversation } from \"./agentConversation/projection/useProjectedAgentConversation\";\nimport type { WorkspaceAgentSessionDetailViewModel } from \"./workspaceAgentSessionDetailViewModel\";\n\ninterface WorkspaceAgentSessionDetailProps {\n detail: WorkspaceAgentSessionDetailViewModel;\n avoidGroupingEdits?: boolean;\n isLoading: boolean;\n timelineItemCount: number;\n onLinkAction?: (action: WorkspaceLinkAction) => void;\n toolCallsLabel: (count: number) => string;\n thinkingLabel?: string;\n loadingLabel?: string;\n rawTimelineJsonLabel?: string;\n showRawTimelineJson?: boolean;\n}\n\nexport function WorkspaceAgentSessionDetail({\n detail,\n avoidGroupingEdits = false,\n isLoading,\n timelineItemCount,\n onLinkAction,\n toolCallsLabel,\n thinkingLabel = translate(\"agentHost.workspaceAgentSessionDetailThinking\"),\n loadingLabel = translate(\"common.loading\"),\n rawTimelineJsonLabel,\n showRawTimelineJson = false\n}: WorkspaceAgentSessionDetailProps): JSX.Element {\n const conversation = useProjectedAgentConversation({\n detail,\n avoidGroupingEdits\n });\n const showLoadingSkeleton =\n detail.turns.length === 0 &&\n (isLoading ||\n detail.activity.status === \"waiting\" ||\n detail.activity.status === \"working\");\n const emptySummary =\n detail.activity.latestActivitySummary ||\n (timelineItemCount > 0\n ? translate(\"agentHost.workspaceAgentSessionDetailEmptyWithTimeline\")\n : translate(\"agentHost.workspaceAgentSessionDetailEmptyNoTimeline\"));\n const flowLabels = useMemo(\n () => ({\n thinkingLabel,\n toolCallsLabel,\n processing: translate(\"agentHost.agentGui.processing\"),\n turnSummary: translate(\"agentHost.agentGui.turnSummary\"),\n rawTimelineJson: rawTimelineJsonLabel\n }),\n [rawTimelineJsonLabel, thinkingLabel, toolCallsLabel]\n );\n const emptyState = useMemo(\n () => (\n <div className=\"workspace-agents-status-panel__detail-empty\">\n {emptySummary}\n </div>\n ),\n [emptySummary]\n );\n\n return (\n <div className=\"workspace-agents-status-panel__detail\">\n <AgentConversationFlow\n conversation={detail.turns.length > 0 ? conversation : null}\n isLoading={showLoadingSkeleton}\n loadingLabel={loadingLabel}\n empty={emptyState}\n onLinkAction={onLinkAction}\n showRawTimelineJson={showRawTimelineJson}\n labels={flowLabels}\n />\n </div>\n );\n}\n\nexport function WorkspaceAgentSessionDetailSkeleton({\n loading = true,\n loadingLabel = translate(\"common.loading\")\n}: {\n loading?: boolean;\n loadingLabel?: string;\n}): JSX.Element {\n const flowLabels = useMemo(\n () => ({\n thinkingLabel: translate(\"agentHost.workspaceAgentSessionDetailThinking\"),\n toolCallsLabel: (count: number) =>\n translate(\"agentHost.workspaceAgentSessionDetailToolCalls\", { count }),\n processing: translate(\"agentHost.agentGui.processing\"),\n turnSummary: translate(\"agentHost.agentGui.turnSummary\")\n }),\n []\n );\n\n if (!loading) {\n return <></>;\n }\n\n return (\n <div\n className=\"workspace-agents-status-panel__detail-skeleton\"\n data-testid=\"workspace-agents-status-panel-detail-skeleton\"\n role=\"status\"\n aria-busy=\"true\"\n aria-label={loadingLabel}\n >\n <AgentConversationFlow\n conversation={null}\n isLoading\n loadingLabel={loadingLabel}\n loadingTestId=\"workspace-agents-status-panel-detail-skeleton\"\n empty={null}\n labels={flowLabels}\n />\n </div>\n );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../shared/WorkspaceAgentSessionDetail.tsx"],"sourcesContent":["import { useMemo, type JSX } from \"react\";\nimport type { WorkspaceLinkAction } from \"../contexts/workspace/presentation/renderer/actions/workspaceLinkActions\";\nimport { translate } from \"../i18n/index\";\nimport { AgentConversationFlow } from \"./agentConversation/components/AgentConversationFlow\";\nimport { useProjectedAgentConversation } from \"./agentConversation/projection/useProjectedAgentConversation\";\nimport type { WorkspaceAgentSessionDetailViewModel } from \"./workspaceAgentSessionDetailViewModel\";\n\ninterface WorkspaceAgentSessionDetailProps {\n detail: WorkspaceAgentSessionDetailViewModel;\n avoidGroupingEdits?: boolean;\n isLoading: boolean;\n timelineItemCount: number;\n onLinkAction?: (action: WorkspaceLinkAction) => void;\n toolCallsLabel: (count: number) => string;\n thinkingLabel?: string;\n loadingLabel?: string;\n rawTimelineJsonLabel?: string;\n showRawTimelineJson?: boolean;\n}\n\nexport function WorkspaceAgentSessionDetail({\n detail,\n avoidGroupingEdits = false,\n isLoading,\n timelineItemCount,\n onLinkAction,\n toolCallsLabel,\n thinkingLabel = translate(\"agentHost.workspaceAgentSessionDetailThinking\"),\n loadingLabel = translate(\"common.loading\"),\n rawTimelineJsonLabel,\n showRawTimelineJson = false\n}: WorkspaceAgentSessionDetailProps): JSX.Element {\n const conversation = useProjectedAgentConversation({\n detail,\n avoidGroupingEdits\n });\n const showLoadingSkeleton =\n detail.turns.length === 0 &&\n (isLoading ||\n detail.activity.status === \"waiting\" ||\n detail.activity.status === \"working\");\n const emptySummary =\n detail.activity.latestActivitySummary ||\n (timelineItemCount > 0\n ? translate(\"agentHost.workspaceAgentSessionDetailEmptyWithTimeline\")\n : translate(\"agentHost.workspaceAgentSessionDetailEmptyNoTimeline\"));\n const flowLabels = useMemo(\n () => ({\n thinkingLabel,\n toolCallsLabel,\n processing: translate(\"agentHost.agentGui.processing\"),\n turnSummary: translate(\"agentHost.agentGui.turnSummary\"),\n rawTimelineJson: rawTimelineJsonLabel\n }),\n [rawTimelineJsonLabel, thinkingLabel, toolCallsLabel]\n );\n const emptyState = useMemo(\n () => (\n <div className=\"workspace-agents-status-panel__detail-empty\">\n {emptySummary}\n </div>\n ),\n [emptySummary]\n );\n\n return (\n <div className=\"workspace-agents-status-panel__detail\">\n <AgentConversationFlow\n conversation={detail.turns.length > 0 ? conversation : null}\n isLoading={showLoadingSkeleton}\n loadingLabel={loadingLabel}\n empty={emptyState}\n onLinkAction={onLinkAction}\n showRawTimelineJson={showRawTimelineJson}\n labels={flowLabels}\n />\n </div>\n );\n}\n\nexport function WorkspaceAgentSessionDetailSkeleton({\n loading = true,\n loadingLabel = translate(\"common.loading\")\n}: {\n loading?: boolean;\n loadingLabel?: string;\n}): JSX.Element {\n const flowLabels = useMemo(\n () => ({\n thinkingLabel: translate(\"agentHost.workspaceAgentSessionDetailThinking\"),\n toolCallsLabel: (count: number) =>\n translate(\"agentHost.workspaceAgentSessionDetailToolCalls\", { count }),\n processing: translate(\"agentHost.agentGui.processing\"),\n turnSummary: translate(\"agentHost.agentGui.turnSummary\")\n }),\n []\n );\n\n if (!loading) {\n return <></>;\n }\n\n return (\n <div\n className=\"workspace-agents-status-panel__detail-skeleton\"\n data-testid=\"workspace-agents-status-panel-detail-skeleton\"\n role=\"status\"\n aria-busy=\"true\"\n aria-label={loadingLabel}\n >\n <AgentConversationFlow\n conversation={null}\n isLoading\n loadingLabel={loadingLabel}\n loadingTestId=\"workspace-agents-status-panel-detail-skeleton\"\n empty={null}\n labels={flowLabels}\n />\n </div>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAAS,eAAyB;AA0D5B,SAyCK,UAzCL;AAtCC,SAAS,4BAA4B;AAAA,EAC1C;AAAA,EACA,qBAAqB;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,gBAAgB,UAAU,+CAA+C;AAAA,EACzE,eAAe,UAAU,gBAAgB;AAAA,EACzC;AAAA,EACA,sBAAsB;AACxB,GAAkD;AAChD,QAAM,eAAe,8BAA8B;AAAA,IACjD;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,sBACJ,OAAO,MAAM,WAAW,MACvB,aACC,OAAO,SAAS,WAAW,aAC3B,OAAO,SAAS,WAAW;AAC/B,QAAM,eACJ,OAAO,SAAS,0BACf,oBAAoB,IACjB,UAAU,wDAAwD,IAClE,UAAU,sDAAsD;AACtE,QAAM,aAAa;AAAA,IACjB,OAAO;AAAA,MACL;AAAA,MACA;AAAA,MACA,YAAY,UAAU,+BAA+B;AAAA,MACrD,aAAa,UAAU,gCAAgC;AAAA,MACvD,iBAAiB;AAAA,IACnB;AAAA,IACA,CAAC,sBAAsB,eAAe,cAAc;AAAA,EACtD;AACA,QAAM,aAAa;AAAA,IACjB,MACE,oBAAC,SAAI,WAAU,+CACZ,wBACH;AAAA,IAEF,CAAC,YAAY;AAAA,EACf;AAEA,SACE,oBAAC,SAAI,WAAU,yCACb;AAAA,IAAC;AAAA;AAAA,MACC,cAAc,OAAO,MAAM,SAAS,IAAI,eAAe;AAAA,MACvD,WAAW;AAAA,MACX;AAAA,MACA,OAAO;AAAA,MACP;AAAA,MACA;AAAA,MACA,QAAQ;AAAA;AAAA,EACV,GACF;AAEJ;","names":[]}
|
package/dist/agent-env/index.js
CHANGED
package/dist/agent-gui.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import 'react';
|
|
2
2
|
import '@tutti-os/ui-i18n-runtime';
|
|
3
|
-
export { n as AgentGUI, w as AgentGUIProps } from './AgentGUI-
|
|
4
|
-
import './agentGuiNodeTypes-
|
|
5
|
-
export { l as AgentGUIHomeSuggestionId } from './types-
|
|
3
|
+
export { n as AgentGUI, w as AgentGUIProps } from './AgentGUI-BSr3cWcJ.js';
|
|
4
|
+
import './agentGuiNodeTypes-CR_l4HhU.js';
|
|
5
|
+
export { l as AgentGUIHomeSuggestionId } from './types-yF_0mrNS.js';
|
|
6
6
|
import './runtime-BBNdWgDU.js';
|
|
7
7
|
export { ReferenceProvenanceCatalog as AgentGUIReferenceProvenanceFilterCatalog } from '@tutti-os/workspace-file-reference/contracts';
|
|
8
8
|
import '@tutti-os/agent-activity-core';
|
|
9
|
+
import './workspace-query-cache.js';
|
|
9
10
|
import './agentFileMentionContracts-B70VnPWO.js';
|
|
10
11
|
import '@tutti-os/workspace-file-manager/services';
|
|
11
12
|
import '@tutti-os/workspace-file-reference/core';
|
|
12
|
-
import './agentConversationVM-
|
|
13
|
+
import './agentConversationVM-D3Dn2LqN.js';
|
|
13
14
|
import '@tutti-os/workspace-issue-manager/core';
|
|
14
15
|
import './workspaceAgentActivityListTypes-DZfS_HgG.js';
|
|
15
16
|
import './context-mention-provider.js';
|
package/dist/agent-gui.js
CHANGED
|
@@ -1,42 +1,44 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentGUI
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-34JD75OB.js";
|
|
4
|
+
import "./chunk-J4K7KIFZ.js";
|
|
5
|
+
import "./chunk-EBXOSQ5G.js";
|
|
6
|
+
import "./chunk-AY5AFMT2.js";
|
|
7
|
+
import "./chunk-BM3CSFWU.js";
|
|
8
|
+
import "./chunk-JLRPIEIE.js";
|
|
9
|
+
import "./chunk-R2ZADXRB.js";
|
|
9
10
|
import "./chunk-UHBCM6RO.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-BRLKORQI.js";
|
|
12
|
+
import "./chunk-JBX3JPTC.js";
|
|
13
|
+
import "./chunk-VMQNG2KI.js";
|
|
14
|
+
import "./chunk-A5UXTAYJ.js";
|
|
15
|
+
import "./chunk-7OYHDOGG.js";
|
|
15
16
|
import "./chunk-FGLQZ6I4.js";
|
|
16
|
-
import "./chunk-
|
|
17
|
-
import "./chunk-
|
|
18
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-L2GENUG3.js";
|
|
18
|
+
import "./chunk-K7WFXVSD.js";
|
|
19
|
+
import "./chunk-USIFGHT3.js";
|
|
19
20
|
import "./chunk-XJ34OIEQ.js";
|
|
20
|
-
import "./chunk-
|
|
21
|
+
import "./chunk-R7AXDQCA.js";
|
|
22
|
+
import "./chunk-OEYXSD3O.js";
|
|
21
23
|
import "./chunk-LUGELG5V.js";
|
|
22
24
|
import "./chunk-JM24HADP.js";
|
|
23
|
-
import "./chunk-
|
|
25
|
+
import "./chunk-AIZJHA4Q.js";
|
|
24
26
|
import "./chunk-2RQM7PJN.js";
|
|
25
|
-
import "./chunk-
|
|
27
|
+
import "./chunk-U4CVBCHD.js";
|
|
26
28
|
import "./chunk-KPMQGPYU.js";
|
|
27
|
-
import "./chunk-
|
|
29
|
+
import "./chunk-2QHKXI5N.js";
|
|
28
30
|
import "./chunk-YMXYBG7U.js";
|
|
29
|
-
import "./chunk-
|
|
31
|
+
import "./chunk-E74BMFHI.js";
|
|
30
32
|
import "./chunk-F5UR6EJG.js";
|
|
31
|
-
import "./chunk-
|
|
33
|
+
import "./chunk-W6TO6K2X.js";
|
|
32
34
|
import "./chunk-PJP5BUU6.js";
|
|
33
|
-
import "./chunk-
|
|
35
|
+
import "./chunk-7KVZPJ3O.js";
|
|
34
36
|
import "./chunk-MIJXEELH.js";
|
|
35
|
-
import "./chunk-
|
|
36
|
-
import "./chunk-
|
|
37
|
+
import "./chunk-25BPR75P.js";
|
|
38
|
+
import "./chunk-7BN2WQ2M.js";
|
|
37
39
|
import "./chunk-D2JUDUYY.js";
|
|
38
|
-
import "./chunk-
|
|
39
|
-
import "./chunk-
|
|
40
|
+
import "./chunk-6CUELYIF.js";
|
|
41
|
+
import "./chunk-YNSXUEIR.js";
|
|
40
42
|
export {
|
|
41
43
|
AgentGUI
|
|
42
44
|
};
|
|
@@ -2,7 +2,7 @@ import * as react from 'react';
|
|
|
2
2
|
import { JSX, ReactNode, HTMLAttributes } from 'react';
|
|
3
3
|
import { I18nRuntime } from '@tutti-os/ui-i18n-runtime';
|
|
4
4
|
import { A as AgentGuiI18nLocale, T as TranslateFn } from '../runtime-BBNdWgDU.js';
|
|
5
|
-
import { b as AgentConversationPromptVM, e as WorkspaceLinkAction } from '../agentConversationVM-
|
|
5
|
+
import { b as AgentConversationPromptVM, e as WorkspaceLinkAction } from '../agentConversationVM-D3Dn2LqN.js';
|
|
6
6
|
import { AgentActivityNeedsAttentionItem, WorkspaceAgentConsumerSession, AgentActivitySnapshot, AgentSessionEngineState } from '@tutti-os/agent-activity-core';
|
|
7
7
|
export { WorkspaceAgentConsumerCounts, WorkspaceAgentConsumerSession, selectWorkspaceAgentConsumerCounts, selectWorkspaceAgentConsumerSession, selectWorkspaceAgentConsumerSessions } from '@tutti-os/agent-activity-core';
|
|
8
8
|
import { a as WorkspaceAgentActivityStatus } from '../workspaceAgentActivityListTypes-DZfS_HgG.js';
|
|
@@ -52,12 +52,18 @@ interface WorkspaceAgentMessageCenterItem {
|
|
|
52
52
|
digest: WorkspaceAgentMessageCenterDigest;
|
|
53
53
|
lastAgentMessageSummary: string;
|
|
54
54
|
lastAgentMessageAtUnixMs: number | null;
|
|
55
|
+
pendingInteractionTarget: WorkspaceAgentMessageCenterInteractionTarget | null;
|
|
55
56
|
pendingPrompt: AgentConversationPromptVM | null;
|
|
56
57
|
needsAttentionKind: AgentActivityNeedsAttentionItem["kind"] | null;
|
|
57
58
|
needsAttentionSummary: string | null;
|
|
58
59
|
latestTurnOutcome?: WorkspaceAgentMessageCenterTurnOutcome | null;
|
|
59
60
|
sortTimeUnixMs: number;
|
|
60
61
|
}
|
|
62
|
+
interface WorkspaceAgentMessageCenterInteractionTarget {
|
|
63
|
+
agentSessionId: string;
|
|
64
|
+
requestId: string;
|
|
65
|
+
turnId: string;
|
|
66
|
+
}
|
|
61
67
|
interface WorkspaceAgentMessageCenterTurnOutcome {
|
|
62
68
|
notificationKey: string;
|
|
63
69
|
status: "completed" | "failed";
|
|
@@ -135,6 +141,7 @@ declare function resolveMessageCenterNotificationAction(item: WorkspaceAgentMess
|
|
|
135
141
|
}): string | null;
|
|
136
142
|
declare function buildWorkspaceAgentInteractivePromptLabels(t: ReturnType<typeof useTranslation>["t"], provider?: string): {
|
|
137
143
|
approvalLead: string;
|
|
144
|
+
fileChangeApprovalLead: string;
|
|
138
145
|
planLead: string;
|
|
139
146
|
planModes: {
|
|
140
147
|
id: string;
|
|
@@ -229,6 +236,7 @@ interface WorkspaceAgentMessageCenterPanelProps {
|
|
|
229
236
|
payload?: Record<string, unknown>;
|
|
230
237
|
promptKind?: string;
|
|
231
238
|
requestId: string;
|
|
239
|
+
turnId?: string;
|
|
232
240
|
}) => Promise<void> | void;
|
|
233
241
|
}
|
|
234
242
|
declare const WorkspaceAgentMessageCenterPanel: react.NamedExoticComponent<WorkspaceAgentMessageCenterPanelProps>;
|
|
@@ -365,6 +373,7 @@ interface AgentInteractivePromptSurfaceProps {
|
|
|
365
373
|
}) => void;
|
|
366
374
|
labels: {
|
|
367
375
|
approvalLead: string;
|
|
376
|
+
fileChangeApprovalLead: string;
|
|
368
377
|
planLead: string;
|
|
369
378
|
planModes: Array<{
|
|
370
379
|
id: string;
|
|
@@ -432,7 +441,7 @@ interface WorkspaceAgentMessageCenterPresentation {
|
|
|
432
441
|
declare function selectWorkspaceAgentMessageCenterPresentation(state: AgentSessionEngineState): WorkspaceAgentMessageCenterPresentation;
|
|
433
442
|
declare function workspaceAgentMessageCenterPresentationEqual(left: WorkspaceAgentMessageCenterPresentation, right: WorkspaceAgentMessageCenterPresentation): boolean;
|
|
434
443
|
type WorkspaceAgentMessageCenterPromptStatus = "idle" | "responding" | "unknown" | "failed";
|
|
435
|
-
declare function workspaceAgentMessageCenterPromptStatus(presentation: WorkspaceAgentMessageCenterPresentation, item: Pick<WorkspaceAgentMessageCenterItem, "agentSessionId" | "pendingPrompt">): WorkspaceAgentMessageCenterPromptStatus;
|
|
444
|
+
declare function workspaceAgentMessageCenterPromptStatus(presentation: WorkspaceAgentMessageCenterPresentation, item: Pick<WorkspaceAgentMessageCenterItem, "agentSessionId" | "pendingInteractionTarget" | "pendingPrompt">): WorkspaceAgentMessageCenterPromptStatus;
|
|
436
445
|
|
|
437
446
|
declare function stabilizeWorkspaceAgentMessageCenterModel(previous: WorkspaceAgentMessageCenterModel | null, next: WorkspaceAgentMessageCenterModel): WorkspaceAgentMessageCenterModel;
|
|
438
447
|
|
|
@@ -445,4 +454,4 @@ interface MessageCenterFilterPreferences {
|
|
|
445
454
|
declare function readMessageCenterFilterPreferences(): MessageCenterFilterPreferences;
|
|
446
455
|
declare function writeMessageCenterFilterPreferences(preferences: MessageCenterFilterPreferences): void;
|
|
447
456
|
|
|
448
|
-
export { AgentInteractivePromptSurface, AgentVerticalScrollArea, type BuildWorkspaceAgentMessageCenterOptions, type MessageCenterAgentUserStack, type MessageCenterFilterPreferences, type MessageCenterGroup, type MessageCenterGroupBy, MessageCenterGroupHeading, MessageCenterIdentityAvatarMark, MessageCenterIdentityAvatarStack, MessageCenterIdentityLabel, MessageCenterOpenChatButton, type MessageCenterProviderOption, type MessageCenterStatusFilter, type MessageCenterStatusOption, type MessageCenterStatusTone, MessageCenterSummary, type MessageCenterTranslate, type PromptToolDetail, type WorkspaceAgentMessageCenterAgentPresentation, WorkspaceAgentMessageCenterAttentionDeck, type WorkspaceAgentMessageCenterAttentionDeckProps, type WorkspaceAgentMessageCenterAttentionDeckRenderCardInput, WorkspaceAgentMessageCenterCard, type WorkspaceAgentMessageCenterCardProps, type WorkspaceAgentMessageCenterCounts, type WorkspaceAgentMessageCenterDigest, type WorkspaceAgentMessageCenterDigestPrimary, type WorkspaceAgentMessageCenterDigestPrimaryKind, type WorkspaceAgentMessageCenterIdentity, type WorkspaceAgentMessageCenterItem, type WorkspaceAgentMessageCenterModel, WorkspaceAgentMessageCenterPanel, type WorkspaceAgentMessageCenterPanelPresentation, type WorkspaceAgentMessageCenterPanelProps, type WorkspaceAgentMessageCenterPresentation, type WorkspaceAgentMessageCenterPromptStatus, WorkspaceAgentMessageCenterStack, MessageCenterViewMenu as WorkspaceAgentMessageCenterViewMenu, approvalOptionDisplayLabel, buildMessageCenterProviderOptions, buildMessageCenterStatusOptions, buildWorkspaceAgentInteractivePromptLabels, buildWorkspaceAgentMessageCenterModelFromEngine, getPromptToolDetails, groupMessageCenterItems, isInteractiveMessageCenterItem, isPromptRequestIdTitle, isRecentlyCompletedMessageCenterItem, isWaitingMessageCenterItem, itemMatchesViewFilters, managedAgentRoundedIconUrl, messageCenterAgentUserStackId, messageCenterFiltersStorageKey, messageCenterGroupLabel, messageCenterStackPreviewNodes, messageCenterStackPreviewText, messageCenterStackRenderId, messageCenterStackScrollSyncSegment, messageCenterStatusFilterValue, messageCenterStatusTone, messageCenterStatusToneClass, partitionMessageCenterItemsByAgentUser, readMessageCenterFilterPreferences, resolveMessageCenterNotificationAction, selectMessageCenterAttentionDeckItems, selectWorkspaceAgentMessageCenterPresentation, stabilizeWorkspaceAgentMessageCenterModel, statusFilterSummary, userAvatarPlaceholderUrl, workspaceAgentActivityStatusLabel, workspaceAgentMessageCenterPresentationEqual, workspaceAgentMessageCenterPromptStatus, writeMessageCenterFilterPreferences };
|
|
457
|
+
export { AgentInteractivePromptSurface, AgentVerticalScrollArea, type BuildWorkspaceAgentMessageCenterOptions, type MessageCenterAgentUserStack, type MessageCenterFilterPreferences, type MessageCenterGroup, type MessageCenterGroupBy, MessageCenterGroupHeading, MessageCenterIdentityAvatarMark, MessageCenterIdentityAvatarStack, MessageCenterIdentityLabel, MessageCenterOpenChatButton, type MessageCenterProviderOption, type MessageCenterStatusFilter, type MessageCenterStatusOption, type MessageCenterStatusTone, MessageCenterSummary, type MessageCenterTranslate, type PromptToolDetail, type WorkspaceAgentMessageCenterAgentPresentation, WorkspaceAgentMessageCenterAttentionDeck, type WorkspaceAgentMessageCenterAttentionDeckProps, type WorkspaceAgentMessageCenterAttentionDeckRenderCardInput, WorkspaceAgentMessageCenterCard, type WorkspaceAgentMessageCenterCardProps, type WorkspaceAgentMessageCenterCounts, type WorkspaceAgentMessageCenterDigest, type WorkspaceAgentMessageCenterDigestPrimary, type WorkspaceAgentMessageCenterDigestPrimaryKind, type WorkspaceAgentMessageCenterIdentity, type WorkspaceAgentMessageCenterInteractionTarget, type WorkspaceAgentMessageCenterItem, type WorkspaceAgentMessageCenterModel, WorkspaceAgentMessageCenterPanel, type WorkspaceAgentMessageCenterPanelPresentation, type WorkspaceAgentMessageCenterPanelProps, type WorkspaceAgentMessageCenterPresentation, type WorkspaceAgentMessageCenterPromptStatus, WorkspaceAgentMessageCenterStack, MessageCenterViewMenu as WorkspaceAgentMessageCenterViewMenu, approvalOptionDisplayLabel, buildMessageCenterProviderOptions, buildMessageCenterStatusOptions, buildWorkspaceAgentInteractivePromptLabels, buildWorkspaceAgentMessageCenterModelFromEngine, getPromptToolDetails, groupMessageCenterItems, isInteractiveMessageCenterItem, isPromptRequestIdTitle, isRecentlyCompletedMessageCenterItem, isWaitingMessageCenterItem, itemMatchesViewFilters, managedAgentRoundedIconUrl, messageCenterAgentUserStackId, messageCenterFiltersStorageKey, messageCenterGroupLabel, messageCenterStackPreviewNodes, messageCenterStackPreviewText, messageCenterStackRenderId, messageCenterStackScrollSyncSegment, messageCenterStatusFilterValue, messageCenterStatusTone, messageCenterStatusToneClass, partitionMessageCenterItemsByAgentUser, readMessageCenterFilterPreferences, resolveMessageCenterNotificationAction, selectMessageCenterAttentionDeckItems, selectWorkspaceAgentMessageCenterPresentation, stabilizeWorkspaceAgentMessageCenterModel, statusFilterSummary, userAvatarPlaceholderUrl, workspaceAgentActivityStatusLabel, workspaceAgentMessageCenterPresentationEqual, workspaceAgentMessageCenterPromptStatus, writeMessageCenterFilterPreferences };
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
dispatchAgentPlanPromptAction,
|
|
7
7
|
getPromptToolDetails,
|
|
8
8
|
isPromptRequestIdTitle
|
|
9
|
-
} from "../chunk-
|
|
9
|
+
} from "../chunk-AIZJHA4Q.js";
|
|
10
10
|
import {
|
|
11
11
|
useEngineSelector
|
|
12
12
|
} from "../chunk-2RQM7PJN.js";
|
|
@@ -17,27 +17,28 @@ import {
|
|
|
17
17
|
extractExitPlanKeepPlanningOptionId,
|
|
18
18
|
extractExitPlanModeOptions,
|
|
19
19
|
isExitPlanSwitchModeInput,
|
|
20
|
+
normalizeAgentApprovalPurpose,
|
|
20
21
|
normalizeAskUserQuestions
|
|
21
|
-
} from "../chunk-
|
|
22
|
+
} from "../chunk-U4CVBCHD.js";
|
|
22
23
|
import {
|
|
23
24
|
cn
|
|
24
25
|
} from "../chunk-KPMQGPYU.js";
|
|
25
26
|
import {
|
|
26
27
|
userAvatarPlaceholderUrl,
|
|
27
28
|
workspaceAgentActivityStatusLabel
|
|
28
|
-
} from "../chunk-
|
|
29
|
+
} from "../chunk-2QHKXI5N.js";
|
|
29
30
|
import {
|
|
30
31
|
resolveWorkspaceAgentSessionSortTimeUnixMs
|
|
31
32
|
} from "../chunk-YMXYBG7U.js";
|
|
32
33
|
import {
|
|
33
34
|
workspaceAgentProviderLabel
|
|
34
|
-
} from "../chunk-
|
|
35
|
+
} from "../chunk-E74BMFHI.js";
|
|
35
36
|
import "../chunk-F5UR6EJG.js";
|
|
36
37
|
import {
|
|
37
38
|
managedAgentRoundedIconUrl
|
|
38
|
-
} from "../chunk-
|
|
39
|
+
} from "../chunk-W6TO6K2X.js";
|
|
39
40
|
import "../chunk-PJP5BUU6.js";
|
|
40
|
-
import "../chunk-
|
|
41
|
+
import "../chunk-7KVZPJ3O.js";
|
|
41
42
|
import {
|
|
42
43
|
normalizeAgentTitleText
|
|
43
44
|
} from "../chunk-MIJXEELH.js";
|
|
@@ -45,11 +46,11 @@ import {
|
|
|
45
46
|
AgentGuiI18nProvider,
|
|
46
47
|
getActiveUiLanguage,
|
|
47
48
|
useTranslation
|
|
48
|
-
} from "../chunk-
|
|
49
|
-
import "../chunk-
|
|
49
|
+
} from "../chunk-25BPR75P.js";
|
|
50
|
+
import "../chunk-7BN2WQ2M.js";
|
|
50
51
|
import "../chunk-D2JUDUYY.js";
|
|
51
|
-
import "../chunk-
|
|
52
|
-
import "../chunk-
|
|
52
|
+
import "../chunk-6CUELYIF.js";
|
|
53
|
+
import "../chunk-YNSXUEIR.js";
|
|
53
54
|
|
|
54
55
|
// agent-message-center/WorkspaceAgentMessageCenterPanel.tsx
|
|
55
56
|
import {
|
|
@@ -537,6 +538,7 @@ function buildWorkspaceAgentMessageCenterItem({
|
|
|
537
538
|
messages,
|
|
538
539
|
status,
|
|
539
540
|
needsAttention,
|
|
541
|
+
pendingInteractionTarget,
|
|
540
542
|
pendingPrompt,
|
|
541
543
|
latestTurnOutcome,
|
|
542
544
|
options = {}
|
|
@@ -577,6 +579,7 @@ function buildWorkspaceAgentMessageCenterItem({
|
|
|
577
579
|
digest,
|
|
578
580
|
lastAgentMessageSummary: lastAgentMessage?.summary ?? needsAttention?.summary ?? title,
|
|
579
581
|
lastAgentMessageAtUnixMs: lastAgentMessage?.occurredAtUnixMs ?? null,
|
|
582
|
+
pendingInteractionTarget,
|
|
580
583
|
pendingPrompt,
|
|
581
584
|
needsAttentionKind: needsAttention?.kind ?? null,
|
|
582
585
|
needsAttentionSummary: needsAttention?.summary ?? null,
|
|
@@ -704,12 +707,16 @@ function approvalPromptFromMessage(message) {
|
|
|
704
707
|
return null;
|
|
705
708
|
}
|
|
706
709
|
const mcpTarget = extractAgentMcpToolTarget({ payload });
|
|
710
|
+
const approvalPurpose = normalizeAgentApprovalPurpose(
|
|
711
|
+
payload.approvalPurpose
|
|
712
|
+
);
|
|
707
713
|
return {
|
|
708
714
|
kind: "approval",
|
|
709
715
|
id: `approval:${requestId}`,
|
|
710
716
|
turnId: message.turnId ?? "turn:unknown",
|
|
711
717
|
requestId,
|
|
712
718
|
callId: stringValue2(payload.callId) ?? message.messageId,
|
|
719
|
+
...approvalPurpose ? { approvalPurpose } : {},
|
|
713
720
|
title: firstNonEmptyString2(
|
|
714
721
|
mcpTarget?.displayName ?? null,
|
|
715
722
|
stringValue2(payload.summary),
|
|
@@ -1438,6 +1445,9 @@ function buildWorkspaceAgentInteractivePromptLabels(t, provider) {
|
|
|
1438
1445
|
approvalLead: t("agentHost.agentGui.approvalRequired", {
|
|
1439
1446
|
provider: provider ? workspaceAgentProviderLabel(provider) : t("agentHost.workspaceAgentsGenericAgentName")
|
|
1440
1447
|
}),
|
|
1448
|
+
fileChangeApprovalLead: t("agentHost.agentGui.fileChangeApprovalRequired", {
|
|
1449
|
+
provider: provider ? workspaceAgentProviderLabel(provider) : t("agentHost.workspaceAgentsGenericAgentName")
|
|
1450
|
+
}),
|
|
1441
1451
|
planLead: t("agentHost.agentGui.planLead"),
|
|
1442
1452
|
planModes: [
|
|
1443
1453
|
{
|
|
@@ -3069,7 +3079,8 @@ function WorkspaceAgentMessageCenterPanelContent({
|
|
|
3069
3079
|
}
|
|
3070
3080
|
await onSubmitPrompt({
|
|
3071
3081
|
...input,
|
|
3072
|
-
agentSessionId: item.agentSessionId,
|
|
3082
|
+
agentSessionId: item.pendingInteractionTarget?.agentSessionId ?? item.agentSessionId,
|
|
3083
|
+
...item.pendingInteractionTarget ? { turnId: item.pendingInteractionTarget.turnId } : {},
|
|
3073
3084
|
promptKind: item.pendingPrompt?.kind
|
|
3074
3085
|
});
|
|
3075
3086
|
},
|
|
@@ -3438,17 +3449,9 @@ var MessageCenterRenderedCard = memo2(function MessageCenterRenderedCard2({
|
|
|
3438
3449
|
import {
|
|
3439
3450
|
selectEngineInteractionResponse,
|
|
3440
3451
|
selectPendingSubmitsForSession,
|
|
3441
|
-
selectPlanDecisionForTurn
|
|
3442
|
-
|
|
3443
|
-
|
|
3444
|
-
// agent-message-center/workspaceAgentConsumerSelectors.ts
|
|
3445
|
-
import {
|
|
3446
|
-
selectWorkspaceAgentConsumerCounts,
|
|
3447
|
-
selectWorkspaceAgentConsumerSession,
|
|
3448
|
-
selectWorkspaceAgentConsumerSessions
|
|
3452
|
+
selectPlanDecisionForTurn,
|
|
3453
|
+
selectWorkspaceAgentRootConversationSessions
|
|
3449
3454
|
} from "@tutti-os/agent-activity-core";
|
|
3450
|
-
|
|
3451
|
-
// agent-message-center/workspaceAgentMessageCenterEngineModel.ts
|
|
3452
3455
|
function buildWorkspaceAgentMessageCenterModelFromEngine(presentation, snapshot, options = {}) {
|
|
3453
3456
|
const items = presentation.consumers.filter((consumer) => consumer.session.visible !== false).map((consumer) => {
|
|
3454
3457
|
const interaction = latestPendingInteraction(consumer);
|
|
@@ -3459,6 +3462,7 @@ function buildWorkspaceAgentMessageCenterModelFromEngine(presentation, snapshot,
|
|
|
3459
3462
|
messages: sessionMessages(snapshot.sessionMessagesById, consumer),
|
|
3460
3463
|
status: consumer.displayStatus,
|
|
3461
3464
|
needsAttention,
|
|
3465
|
+
pendingInteractionTarget: interaction ? interactionTarget(interaction) : null,
|
|
3462
3466
|
pendingPrompt: interaction ? promptFromInteraction(interaction) : null,
|
|
3463
3467
|
latestTurnOutcome: turnOutcome(consumer),
|
|
3464
3468
|
options
|
|
@@ -3470,26 +3474,30 @@ function buildWorkspaceAgentMessageCenterModelFromEngine(presentation, snapshot,
|
|
|
3470
3474
|
);
|
|
3471
3475
|
}
|
|
3472
3476
|
function selectWorkspaceAgentMessageCenterPresentation(state) {
|
|
3473
|
-
const consumers =
|
|
3477
|
+
const consumers = selectWorkspaceAgentRootConversationSessions(state);
|
|
3474
3478
|
const promptStatusByKey = {};
|
|
3475
3479
|
for (const consumer of consumers) {
|
|
3476
3480
|
const sessionId = consumer.session.agentSessionId;
|
|
3477
3481
|
for (const interaction of consumer.pendingInteractions) {
|
|
3478
3482
|
const response = selectEngineInteractionResponse(
|
|
3479
3483
|
state,
|
|
3480
|
-
|
|
3484
|
+
interaction.agentSessionId,
|
|
3481
3485
|
interaction.turnId,
|
|
3482
3486
|
interaction.requestId
|
|
3483
3487
|
);
|
|
3484
3488
|
if (response) {
|
|
3485
|
-
promptStatusByKey[promptStatusKey(
|
|
3489
|
+
promptStatusByKey[promptStatusKey(
|
|
3490
|
+
interaction.agentSessionId,
|
|
3491
|
+
interaction.turnId,
|
|
3492
|
+
interaction.requestId
|
|
3493
|
+
)] = response.status;
|
|
3486
3494
|
}
|
|
3487
3495
|
}
|
|
3488
3496
|
const turnId = consumer.latestTurn?.turnId ?? "";
|
|
3489
3497
|
if (!turnId) continue;
|
|
3490
3498
|
const decision = selectPlanDecisionForTurn(state, sessionId, turnId);
|
|
3491
3499
|
if (decision) {
|
|
3492
|
-
promptStatusByKey[promptStatusKey(sessionId, turnId)] = decision.status === "requested" ? "responding" : decision.status;
|
|
3500
|
+
promptStatusByKey[promptStatusKey(sessionId, turnId, turnId)] = decision.status === "requested" ? "responding" : decision.status;
|
|
3493
3501
|
continue;
|
|
3494
3502
|
}
|
|
3495
3503
|
const feedbackPrefix = [
|
|
@@ -3503,7 +3511,7 @@ function selectWorkspaceAgentMessageCenterPresentation(state) {
|
|
|
3503
3511
|
(record) => record.clientSubmitId.startsWith(feedbackPrefix)
|
|
3504
3512
|
);
|
|
3505
3513
|
if (submit) {
|
|
3506
|
-
promptStatusByKey[promptStatusKey(sessionId, turnId)] = submit.status === "failed" ? "failed" : submit.status === "uncertain" ? "unknown" : "responding";
|
|
3514
|
+
promptStatusByKey[promptStatusKey(sessionId, turnId, turnId)] = submit.status === "failed" ? "failed" : submit.status === "uncertain" ? "unknown" : "responding";
|
|
3507
3515
|
}
|
|
3508
3516
|
}
|
|
3509
3517
|
return {
|
|
@@ -3522,10 +3530,19 @@ function workspaceAgentMessageCenterPresentationEqual(left, right) {
|
|
|
3522
3530
|
function workspaceAgentMessageCenterPromptStatus(presentation, item) {
|
|
3523
3531
|
const prompt = item.pendingPrompt;
|
|
3524
3532
|
if (!prompt) return "idle";
|
|
3525
|
-
|
|
3526
|
-
|
|
3527
|
-
|
|
3528
|
-
|
|
3533
|
+
const target = item.pendingInteractionTarget;
|
|
3534
|
+
return presentation.promptStatusByKey[target ? promptStatusKey(
|
|
3535
|
+
target.agentSessionId,
|
|
3536
|
+
target.turnId,
|
|
3537
|
+
target.requestId
|
|
3538
|
+
) : promptStatusKey(
|
|
3539
|
+
item.agentSessionId,
|
|
3540
|
+
prompt.requestId,
|
|
3541
|
+
prompt.requestId
|
|
3542
|
+
)] ?? "idle";
|
|
3543
|
+
}
|
|
3544
|
+
function promptStatusKey(agentSessionId, turnId, requestId) {
|
|
3545
|
+
return `${agentSessionId}\0${turnId}\0${requestId}`;
|
|
3529
3546
|
}
|
|
3530
3547
|
function promptStatusMapsEqual(left, right) {
|
|
3531
3548
|
const keys = Object.keys(left);
|
|
@@ -3546,6 +3563,13 @@ function sessionMessages(sessionMessagesById, consumer) {
|
|
|
3546
3563
|
function latestPendingInteraction(consumer) {
|
|
3547
3564
|
return consumer.pendingInteractions.at(-1) ?? null;
|
|
3548
3565
|
}
|
|
3566
|
+
function interactionTarget(interaction) {
|
|
3567
|
+
return {
|
|
3568
|
+
agentSessionId: interaction.agentSessionId,
|
|
3569
|
+
requestId: interaction.requestId,
|
|
3570
|
+
turnId: interaction.turnId
|
|
3571
|
+
};
|
|
3572
|
+
}
|
|
3549
3573
|
function needsAttentionFromInteraction(consumer, interaction) {
|
|
3550
3574
|
const summary = interactionSummary(interaction);
|
|
3551
3575
|
return {
|
|
@@ -3594,12 +3618,16 @@ function promptFromInteraction(interaction) {
|
|
|
3594
3618
|
}
|
|
3595
3619
|
] : [];
|
|
3596
3620
|
});
|
|
3621
|
+
const approvalPurpose = normalizeAgentApprovalPurpose(
|
|
3622
|
+
interaction.metadata?.approvalPurpose
|
|
3623
|
+
);
|
|
3597
3624
|
return {
|
|
3598
3625
|
kind: "approval",
|
|
3599
3626
|
id: `approval:${interaction.requestId}`,
|
|
3600
3627
|
turnId: interaction.turnId,
|
|
3601
3628
|
requestId: interaction.requestId,
|
|
3602
3629
|
callId: textValue(input.callId) ?? interaction.requestId,
|
|
3630
|
+
...approvalPurpose ? { approvalPurpose } : {},
|
|
3603
3631
|
title: interactionSummary(interaction),
|
|
3604
3632
|
toolName: interaction.toolName ?? null,
|
|
3605
3633
|
status: interaction.status,
|
|
@@ -3610,6 +3638,9 @@ function promptFromInteraction(interaction) {
|
|
|
3610
3638
|
};
|
|
3611
3639
|
}
|
|
3612
3640
|
function turnOutcome(consumer) {
|
|
3641
|
+
if (consumer.displayStatus !== "completed" && consumer.displayStatus !== "failed") {
|
|
3642
|
+
return null;
|
|
3643
|
+
}
|
|
3613
3644
|
const turn = consumer.latestTurn;
|
|
3614
3645
|
if (!turn || turn.phase !== "settled") return null;
|
|
3615
3646
|
const status = turn.outcome === "completed" ? "completed" : turn.outcome === "failed" ? "failed" : null;
|
|
@@ -3662,11 +3693,17 @@ function stabilizeWorkspaceAgentMessageCenterModel(previous, next) {
|
|
|
3662
3693
|
};
|
|
3663
3694
|
}
|
|
3664
3695
|
function messageCenterItemsEqual(left, right) {
|
|
3665
|
-
return left.id === right.id && left.agentSessionId === right.agentSessionId && left.agentTargetId === right.agentTargetId && left.agentName === right.agentName && left.agentAvatarUrl === right.agentAvatarUrl && left.provider === right.provider && left.userId === right.userId && left.title === right.title && left.imported === right.imported && left.cwd === right.cwd && left.status === right.status && left.lastAgentMessageSummary === right.lastAgentMessageSummary && left.lastAgentMessageAtUnixMs === right.lastAgentMessageAtUnixMs &&
|
|
3696
|
+
return left.id === right.id && left.agentSessionId === right.agentSessionId && left.agentTargetId === right.agentTargetId && left.agentName === right.agentName && left.agentAvatarUrl === right.agentAvatarUrl && left.provider === right.provider && left.userId === right.userId && left.title === right.title && left.imported === right.imported && left.cwd === right.cwd && left.status === right.status && left.lastAgentMessageSummary === right.lastAgentMessageSummary && left.lastAgentMessageAtUnixMs === right.lastAgentMessageAtUnixMs && messageCenterInteractionTargetEqual(
|
|
3697
|
+
left.pendingInteractionTarget,
|
|
3698
|
+
right.pendingInteractionTarget
|
|
3699
|
+
) && left.needsAttentionKind === right.needsAttentionKind && left.needsAttentionSummary === right.needsAttentionSummary && left.sortTimeUnixMs === right.sortTimeUnixMs && messageCenterIdentityEqual(left.identity, right.identity) && messageCenterDigestEqual(left.digest, right.digest) && messageCenterPromptEqual(left.pendingPrompt, right.pendingPrompt) && messageCenterTurnOutcomeEqual(
|
|
3666
3700
|
left.latestTurnOutcome ?? null,
|
|
3667
3701
|
right.latestTurnOutcome ?? null
|
|
3668
3702
|
);
|
|
3669
3703
|
}
|
|
3704
|
+
function messageCenterInteractionTargetEqual(left, right) {
|
|
3705
|
+
return left === right || left !== null && right !== null && left.agentSessionId === right.agentSessionId && left.turnId === right.turnId && left.requestId === right.requestId;
|
|
3706
|
+
}
|
|
3670
3707
|
function messageCenterCountsEqual(left, right) {
|
|
3671
3708
|
return left.all === right.all && left.working === right.working && left.waiting === right.waiting && left.completed === right.completed && left.failed === right.failed;
|
|
3672
3709
|
}
|
|
@@ -3770,6 +3807,13 @@ function messageCenterJsonValueEqual(left, right) {
|
|
|
3770
3807
|
(key) => messageCenterJsonValueEqual(leftRecord[key], rightRecord[key])
|
|
3771
3808
|
);
|
|
3772
3809
|
}
|
|
3810
|
+
|
|
3811
|
+
// agent-message-center/workspaceAgentConsumerSelectors.ts
|
|
3812
|
+
import {
|
|
3813
|
+
selectWorkspaceAgentConsumerCounts,
|
|
3814
|
+
selectWorkspaceAgentConsumerSession,
|
|
3815
|
+
selectWorkspaceAgentConsumerSessions
|
|
3816
|
+
} from "@tutti-os/agent-activity-core";
|
|
3773
3817
|
export {
|
|
3774
3818
|
AgentInteractivePromptSurface,
|
|
3775
3819
|
AgentVerticalScrollArea,
|