@tutti-os/agent-gui 0.0.201 → 0.0.203
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.js +3 -3
- package/dist/agent-gui.d.ts +2 -1
- package/dist/agent-gui.js +8 -8
- package/dist/agent-message-center/index.js +3 -3
- package/dist/app/renderer/agentactivity.css +45 -115
- package/dist/{chunk-F5ARZZES.js → chunk-4OJSSUEU.js} +2 -2
- package/dist/{chunk-PWPVYNGO.js → chunk-FFMVDJOE.js} +2 -2
- package/dist/{chunk-3FA5JIDL.js → chunk-K5AOJ5DO.js} +1 -1
- package/dist/chunk-K5AOJ5DO.js.map +1 -0
- package/dist/{chunk-DAP74J63.js → chunk-LHT2UBPE.js} +302 -165
- package/dist/chunk-LHT2UBPE.js.map +1 -0
- package/dist/{chunk-ZADHMOME.js → chunk-NEH45ROF.js} +30 -16
- package/dist/chunk-NEH45ROF.js.map +1 -0
- package/dist/{chunk-MFQB4LR5.js → chunk-RD3ZAYNV.js} +3 -3
- package/dist/{chunk-5ZO3H4C5.js → chunk-VDTG6M6K.js} +2 -2
- package/dist/{chunk-7NUEEGAA.js → chunk-X5V6P2EB.js} +5 -1
- package/dist/chunk-X5V6P2EB.js.map +1 -0
- package/dist/context-mention-palette/index.js +3 -3
- package/dist/conversation-rail-runtime.d.ts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +8 -8
- package/dist/mention-search.js +2 -2
- package/dist/workbench/contribution.js +1 -1
- package/dist/workbench/index.js +1 -1
- package/dist/workbench/tool-sidebar/index.js +1 -1
- package/dist/workbench/tool-sidebar/index.js.map +1 -1
- package/package.json +14 -14
- package/dist/chunk-3FA5JIDL.js.map +0 -1
- package/dist/chunk-7NUEEGAA.js.map +0 -1
- package/dist/chunk-DAP74J63.js.map +0 -1
- package/dist/chunk-ZADHMOME.js.map +0 -1
- /package/dist/{chunk-F5ARZZES.js.map → chunk-4OJSSUEU.js.map} +0 -0
- /package/dist/{chunk-PWPVYNGO.js.map → chunk-FFMVDJOE.js.map} +0 -0
- /package/dist/{chunk-MFQB4LR5.js.map → chunk-RD3ZAYNV.js.map} +0 -0
- /package/dist/{chunk-5ZO3H4C5.js.map → chunk-VDTG6M6K.js.map} +0 -0
|
@@ -7,7 +7,7 @@ import {
|
|
|
7
7
|
reconcileProjectedAgentConversationVM,
|
|
8
8
|
serializeAgentConversationForClipboard,
|
|
9
9
|
useProjectedAgentConversation
|
|
10
|
-
} from "../chunk-
|
|
10
|
+
} from "../chunk-NEH45ROF.js";
|
|
11
11
|
import "../chunk-XD5NTTFJ.js";
|
|
12
12
|
import "../chunk-CXC3ROXQ.js";
|
|
13
13
|
import "../chunk-XJ34OIEQ.js";
|
|
@@ -15,9 +15,9 @@ import "../chunk-JDVP33S5.js";
|
|
|
15
15
|
import "../chunk-JXFOFJYI.js";
|
|
16
16
|
import "../chunk-3V5OCA2M.js";
|
|
17
17
|
import "../chunk-FGLQZ6I4.js";
|
|
18
|
-
import "../chunk-
|
|
18
|
+
import "../chunk-FFMVDJOE.js";
|
|
19
19
|
import "../chunk-ZVYUTXQJ.js";
|
|
20
|
-
import "../chunk-
|
|
20
|
+
import "../chunk-K5AOJ5DO.js";
|
|
21
21
|
import "../chunk-F5UR6EJG.js";
|
|
22
22
|
import "../chunk-M6HTOCQK.js";
|
|
23
23
|
import {
|
package/dist/agent-gui.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
3
|
import { I18nRuntime } from '@tutti-os/ui-i18n-runtime';
|
|
4
|
-
import { AgentActivityGoalControlInput, AgentActivityGoalControlResult, AgentActivityCreateSessionInput, AgentActivitySession, AgentActivityDeleteSessionInput, AgentActivityDeleteSessionResult, AgentActivitySendInput, AgentActivitySessionSettings, AgentActivityActivateSessionResult, AgentActivityUpdateTuttiModeActivationInput, AgentActivityUpdateTuttiModeActivationResult, AgentActivitySnapshot, AgentSessionEngine, AgentActivityMessageOrder, AgentActivityMessagePage, AgentActivitySendInputResult, AgentActivityRenameSessionInput, AgentActivitySetCollaborationAdoptionInput, AgentActivityCollaborationRun, AgentActivitySubmitInteractiveInput, AgentActivitySubmitInteractiveResult, AgentActivitySnapshotListener, AgentActivitySubmitSettingsPatch } from '@tutti-os/agent-activity-core';
|
|
4
|
+
import { AgentActivityGoalControlInput, AgentActivityGoalControlResult, AgentActivityCreateSessionInput, AgentActivitySession, AgentActivityDeleteSessionInput, AgentActivityDeleteSessionResult, AgentActivitySendInput, AgentActivityRailPlacement, AgentActivitySessionSettings, AgentActivityActivateSessionResult, AgentActivityUpdateTuttiModeActivationInput, AgentActivityUpdateTuttiModeActivationResult, AgentActivitySnapshot, AgentSessionEngine, AgentActivityMessageOrder, AgentActivityMessagePage, AgentActivitySendInputResult, AgentActivityRenameSessionInput, AgentActivitySetCollaborationAdoptionInput, AgentActivityCollaborationRun, AgentActivitySubmitInteractiveInput, AgentActivitySubmitInteractiveResult, AgentActivitySnapshotListener, AgentActivitySubmitSettingsPatch } from '@tutti-os/agent-activity-core';
|
|
5
5
|
import { l as AgentHostAgentSessionComposerSettings, p as AgentHostUnactivateAgentSessionResult, b as AgentGUIAgentTarget, f as AgentGUIProvider, q as AgentPromptContentBlock, e as AgentGUINodeData, P as Point, g as AgentGUIProviderRailAllPresentation, h as AgentGUIProviderRailMode, i as AgentGUIProviderReadinessGate, j as AgentGUITargetConnectionSource, d as AgentGUIHomeSuggestionId, N as NodeFrame, a as AgentGUIAgentDirectorySnapshot, c as AgentGUIAllAgentsPresentation } from './types-CHAMK2g7.js';
|
|
6
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-DTeerTzS.js';
|
|
7
7
|
import { WorkspaceFileReference, ReferenceLocateTarget, WorkspaceFileReferenceAdapter, ReferenceProvenanceCatalog } from '@tutti-os/workspace-file-reference/contracts';
|
|
@@ -184,6 +184,7 @@ interface AgentActivityRuntimeActivateSessionInputBase {
|
|
|
184
184
|
initialContent?: AgentActivitySendInput["content"];
|
|
185
185
|
/** 仅展示用首轮文本(bundle 折叠成一个 chip);initialContent 仍带展开后的文件。 */
|
|
186
186
|
initialDisplayPrompt?: string | null;
|
|
187
|
+
railPlacement?: AgentActivityRailPlacement;
|
|
187
188
|
submitDiagnostics?: AgentActivitySendInput["submitDiagnostics"];
|
|
188
189
|
settings?: AgentActivitySessionSettings;
|
|
189
190
|
title?: string;
|
package/dist/agent-gui.js
CHANGED
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AgentGUI
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-LHT2UBPE.js";
|
|
4
4
|
import "./chunk-LB4AGT7B.js";
|
|
5
5
|
import "./chunk-A4WCTHWS.js";
|
|
6
|
-
import "./chunk-
|
|
6
|
+
import "./chunk-X5V6P2EB.js";
|
|
7
7
|
import "./chunk-KDN6SLJM.js";
|
|
8
8
|
import "./chunk-4CHBM3G3.js";
|
|
9
9
|
import "./chunk-CBMWHQ7P.js";
|
|
10
10
|
import "./chunk-MGSRWYRN.js";
|
|
11
11
|
import "./chunk-GWKXYGUN.js";
|
|
12
|
-
import "./chunk-
|
|
12
|
+
import "./chunk-NEH45ROF.js";
|
|
13
13
|
import "./chunk-XD5NTTFJ.js";
|
|
14
14
|
import "./chunk-CXC3ROXQ.js";
|
|
15
15
|
import "./chunk-UP3ZDYTN.js";
|
|
16
16
|
import "./chunk-GUFEHWUX.js";
|
|
17
|
-
import "./chunk-
|
|
17
|
+
import "./chunk-VDTG6M6K.js";
|
|
18
18
|
import "./chunk-CX6XXG6R.js";
|
|
19
19
|
import "./chunk-G7DS23D4.js";
|
|
20
|
-
import "./chunk-
|
|
20
|
+
import "./chunk-4OJSSUEU.js";
|
|
21
21
|
import "./chunk-VMPA46ET.js";
|
|
22
22
|
import "./chunk-XJ34OIEQ.js";
|
|
23
23
|
import "./chunk-JDVP33S5.js";
|
|
@@ -25,13 +25,13 @@ import "./chunk-JXFOFJYI.js";
|
|
|
25
25
|
import "./chunk-3V5OCA2M.js";
|
|
26
26
|
import "./chunk-RMQREVJY.js";
|
|
27
27
|
import "./chunk-FGLQZ6I4.js";
|
|
28
|
-
import "./chunk-
|
|
28
|
+
import "./chunk-RD3ZAYNV.js";
|
|
29
29
|
import "./chunk-EVQ4JY3N.js";
|
|
30
|
-
import "./chunk-
|
|
30
|
+
import "./chunk-FFMVDJOE.js";
|
|
31
31
|
import "./chunk-ZVYUTXQJ.js";
|
|
32
32
|
import "./chunk-UEBPMWKS.js";
|
|
33
33
|
import "./chunk-YMXYBG7U.js";
|
|
34
|
-
import "./chunk-
|
|
34
|
+
import "./chunk-K5AOJ5DO.js";
|
|
35
35
|
import "./chunk-F5UR6EJG.js";
|
|
36
36
|
import "./chunk-M6HTOCQK.js";
|
|
37
37
|
import "./chunk-EOGTJQID.js";
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
isPromptRequestIdTitle,
|
|
9
9
|
latestPlanTurnId,
|
|
10
10
|
planImplementationPromptFromPlanTurn
|
|
11
|
-
} from "../chunk-
|
|
11
|
+
} from "../chunk-RD3ZAYNV.js";
|
|
12
12
|
import {
|
|
13
13
|
useEngineSelector
|
|
14
14
|
} from "../chunk-EVQ4JY3N.js";
|
|
@@ -21,7 +21,7 @@ import {
|
|
|
21
21
|
isExitPlanSwitchModeInput,
|
|
22
22
|
normalizeAgentApprovalPurpose,
|
|
23
23
|
normalizeAskUserQuestions
|
|
24
|
-
} from "../chunk-
|
|
24
|
+
} from "../chunk-FFMVDJOE.js";
|
|
25
25
|
import {
|
|
26
26
|
cn
|
|
27
27
|
} from "../chunk-ZVYUTXQJ.js";
|
|
@@ -34,7 +34,7 @@ import {
|
|
|
34
34
|
} from "../chunk-YMXYBG7U.js";
|
|
35
35
|
import {
|
|
36
36
|
workspaceAgentProviderLabel
|
|
37
|
-
} from "../chunk-
|
|
37
|
+
} from "../chunk-K5AOJ5DO.js";
|
|
38
38
|
import "../chunk-F5UR6EJG.js";
|
|
39
39
|
import {
|
|
40
40
|
managedAgentRoundedIconUrl
|
|
@@ -3747,9 +3747,7 @@ aside.workspace-agents-status-panel
|
|
|
3747
3747
|
content: "";
|
|
3748
3748
|
}
|
|
3749
3749
|
|
|
3750
|
-
.agent-gui-conversation__message-group
|
|
3751
|
-
> .agent-gui-conversation__message-footer
|
|
3752
|
-
) {
|
|
3750
|
+
.agent-gui-conversation__message-group[data-agent-message-footer="true"] {
|
|
3753
3751
|
margin-bottom: 26px;
|
|
3754
3752
|
}
|
|
3755
3753
|
|
|
@@ -3870,9 +3868,7 @@ aside.workspace-agents-status-panel
|
|
|
3870
3868
|
}
|
|
3871
3869
|
|
|
3872
3870
|
.agent-gui-node__timeline
|
|
3873
|
-
> .agent-gui-conversation__assistant-message-flow
|
|
3874
|
-
> .workspace-agents-status-panel__detail-thinking-disclosure:last-child
|
|
3875
|
-
)
|
|
3871
|
+
> .agent-gui-conversation__assistant-message-flow[data-agent-message-flow-thinking-last="true"]
|
|
3876
3872
|
+ :is(
|
|
3877
3873
|
.workspace-agents-status-panel__detail-tool-section,
|
|
3878
3874
|
.workspace-agents-status-panel__detail-tool-row
|
|
@@ -3882,9 +3878,7 @@ aside.workspace-agents-status-panel
|
|
|
3882
3878
|
.workspace-agents-status-panel__detail-tool-section,
|
|
3883
3879
|
.workspace-agents-status-panel__detail-tool-row
|
|
3884
3880
|
)
|
|
3885
|
-
+ .agent-gui-conversation__assistant-message-flow
|
|
3886
|
-
> .workspace-agents-status-panel__detail-thinking-disclosure:first-child
|
|
3887
|
-
),
|
|
3881
|
+
+ .agent-gui-conversation__assistant-message-flow[data-agent-message-flow-thinking-first="true"],
|
|
3888
3882
|
.agent-gui-node__timeline
|
|
3889
3883
|
> :is(
|
|
3890
3884
|
.workspace-agents-status-panel__detail-tool-section,
|
|
@@ -3898,63 +3892,23 @@ aside.workspace-agents-status-panel
|
|
|
3898
3892
|
}
|
|
3899
3893
|
|
|
3900
3894
|
.agent-gui-node__timeline
|
|
3901
|
-
> .agent-gui-transcript-row
|
|
3902
|
-
|
|
3903
|
-
> .workspace-agents-status-panel__detail-thinking-disclosure:last-child
|
|
3904
|
-
)
|
|
3905
|
-
+ .agent-gui-transcript-row:has(
|
|
3906
|
-
> :is(
|
|
3907
|
-
.workspace-agents-status-panel__detail-tool-section,
|
|
3908
|
-
.workspace-agents-status-panel__detail-tool-row
|
|
3909
|
-
)
|
|
3910
|
-
),
|
|
3895
|
+
> .agent-gui-transcript-row[data-agent-transcript-row-thinking-last="true"]
|
|
3896
|
+
+ .agent-gui-transcript-row[data-agent-transcript-row-kind="tool-group"],
|
|
3911
3897
|
.agent-gui-node__timeline
|
|
3912
|
-
> .agent-gui-transcript-row
|
|
3913
|
-
|
|
3914
|
-
.workspace-agents-status-panel__detail-tool-section,
|
|
3915
|
-
.workspace-agents-status-panel__detail-tool-row
|
|
3916
|
-
)
|
|
3917
|
-
)
|
|
3918
|
-
+ .agent-gui-transcript-row:has(
|
|
3919
|
-
> .agent-gui-conversation__assistant-message-flow
|
|
3920
|
-
> .workspace-agents-status-panel__detail-thinking-disclosure:first-child
|
|
3921
|
-
),
|
|
3898
|
+
> .agent-gui-transcript-row[data-agent-transcript-row-kind="tool-group"]
|
|
3899
|
+
+ .agent-gui-transcript-row[data-agent-transcript-row-thinking-first="true"],
|
|
3922
3900
|
.agent-gui-node__timeline
|
|
3923
|
-
> .agent-gui-transcript-row
|
|
3924
|
-
|
|
3925
|
-
.workspace-agents-status-panel__detail-tool-section,
|
|
3926
|
-
.workspace-agents-status-panel__detail-tool-row
|
|
3927
|
-
)
|
|
3928
|
-
)
|
|
3929
|
-
+ .agent-gui-transcript-row:has(
|
|
3930
|
-
> :is(
|
|
3931
|
-
.workspace-agents-status-panel__detail-tool-section,
|
|
3932
|
-
.workspace-agents-status-panel__detail-tool-row
|
|
3933
|
-
)
|
|
3934
|
-
) {
|
|
3901
|
+
> .agent-gui-transcript-row[data-agent-transcript-row-kind="tool-group"]
|
|
3902
|
+
+ .agent-gui-transcript-row[data-agent-transcript-row-kind="tool-group"] {
|
|
3935
3903
|
margin-top: -8px;
|
|
3936
3904
|
}
|
|
3937
3905
|
|
|
3938
3906
|
.agent-gui-node__timeline
|
|
3939
|
-
> .agent-gui-transcript-row
|
|
3940
|
-
|
|
3941
|
-
)
|
|
3942
|
-
+ .agent-gui-transcript-row:has(
|
|
3943
|
-
> :is(
|
|
3944
|
-
.workspace-agents-status-panel__detail-tool-section,
|
|
3945
|
-
.workspace-agents-status-panel__detail-tool-row
|
|
3946
|
-
)
|
|
3947
|
-
),
|
|
3907
|
+
> .agent-gui-transcript-row[data-agent-transcript-row-speaker="assistant"]
|
|
3908
|
+
+ .agent-gui-transcript-row[data-agent-transcript-row-kind="tool-group"],
|
|
3948
3909
|
.agent-gui-node__timeline
|
|
3949
|
-
> .agent-gui-transcript-row
|
|
3950
|
-
|
|
3951
|
-
.workspace-agents-status-panel__detail-tool-section,
|
|
3952
|
-
.workspace-agents-status-panel__detail-tool-row
|
|
3953
|
-
)
|
|
3954
|
-
)
|
|
3955
|
-
+ .agent-gui-transcript-row:has(
|
|
3956
|
-
> .agent-gui-conversation__assistant-message-flow
|
|
3957
|
-
) {
|
|
3910
|
+
> .agent-gui-transcript-row[data-agent-transcript-row-kind="tool-group"]
|
|
3911
|
+
+ .agent-gui-transcript-row[data-agent-transcript-row-speaker="assistant"] {
|
|
3958
3912
|
margin-top: -12px;
|
|
3959
3913
|
}
|
|
3960
3914
|
|
|
@@ -4619,17 +4573,16 @@ aside.workspace-agents-status-panel
|
|
|
4619
4573
|
transition: none;
|
|
4620
4574
|
}
|
|
4621
4575
|
|
|
4622
|
-
.workbench-window
|
|
4623
|
-
|
|
4624
|
-
) {
|
|
4576
|
+
.workbench-window[data-window-header-layout="overlay"],
|
|
4577
|
+
.workbench-window[data-agent-gui-standalone-window="true"] {
|
|
4625
4578
|
--agent-gui-workbench-header-height: 44px;
|
|
4626
4579
|
|
|
4627
4580
|
grid-template-rows: minmax(0, 1fr);
|
|
4628
4581
|
}
|
|
4629
4582
|
|
|
4630
|
-
.workbench-window
|
|
4631
|
-
|
|
4632
|
-
|
|
4583
|
+
.workbench-window[data-window-header-layout="overlay"]
|
|
4584
|
+
.workbench-window__header,
|
|
4585
|
+
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4633
4586
|
.workbench-window__header {
|
|
4634
4587
|
position: absolute !important;
|
|
4635
4588
|
top: 0 !important;
|
|
@@ -4648,50 +4601,34 @@ aside.workspace-agents-status-panel
|
|
|
4648
4601
|
user-select: auto;
|
|
4649
4602
|
}
|
|
4650
4603
|
|
|
4651
|
-
.workbench-window
|
|
4652
|
-
> .workbench-window__header
|
|
4653
|
-
.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
|
|
4654
|
-
)
|
|
4604
|
+
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4655
4605
|
.workbench-window__header {
|
|
4656
4606
|
cursor: grab !important;
|
|
4657
4607
|
}
|
|
4658
4608
|
|
|
4659
|
-
.workbench-window
|
|
4660
|
-
> .workbench-window__header
|
|
4661
|
-
.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
|
|
4662
|
-
)
|
|
4609
|
+
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4663
4610
|
.workbench-window__header:active {
|
|
4664
4611
|
cursor: grabbing !important;
|
|
4665
4612
|
}
|
|
4666
4613
|
|
|
4667
|
-
.workbench-window
|
|
4668
|
-
> .workbench-window__header
|
|
4669
|
-
.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
|
|
4670
|
-
)
|
|
4614
|
+
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4671
4615
|
.workbench-window__header {
|
|
4672
4616
|
z-index: calc(var(--z-panel) + 1);
|
|
4673
4617
|
}
|
|
4674
4618
|
|
|
4675
|
-
.workbench-window
|
|
4676
|
-
> .workbench-window__header
|
|
4677
|
-
.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
|
|
4678
|
-
)
|
|
4619
|
+
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4679
4620
|
.agent-gui-workbench-header::after {
|
|
4680
4621
|
display: none;
|
|
4681
4622
|
}
|
|
4682
4623
|
|
|
4683
|
-
.workbench-window
|
|
4684
|
-
|
|
4685
|
-
)
|
|
4624
|
+
.workbench-window[data-window-header-layout="overlay"] .workbench-window__body,
|
|
4625
|
+
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4686
4626
|
.workbench-window__body {
|
|
4687
4627
|
grid-row: 1;
|
|
4688
4628
|
overflow: hidden;
|
|
4689
4629
|
}
|
|
4690
4630
|
|
|
4691
|
-
.workbench-window
|
|
4692
|
-
> .workbench-window__header
|
|
4693
|
-
.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
|
|
4694
|
-
)
|
|
4631
|
+
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4695
4632
|
.workbench-window__body {
|
|
4696
4633
|
display: flex;
|
|
4697
4634
|
width: 100%;
|
|
@@ -4753,9 +4690,9 @@ aside.workspace-agents-status-panel
|
|
|
4753
4690
|
overscroll-behavior: contain;
|
|
4754
4691
|
}
|
|
4755
4692
|
|
|
4756
|
-
.workbench-window
|
|
4757
|
-
|
|
4758
|
-
|
|
4693
|
+
.workbench-window[data-window-header-layout="overlay"]
|
|
4694
|
+
.agent-gui-node__provider-rail-panel,
|
|
4695
|
+
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4759
4696
|
.agent-gui-node__provider-rail-panel {
|
|
4760
4697
|
padding-top: var(--agent-gui-workbench-header-height);
|
|
4761
4698
|
}
|
|
@@ -4764,30 +4701,29 @@ aside.workspace-agents-status-panel
|
|
|
4764
4701
|
breathing room on the inner rail, so the "All" tile sits at header + 2px. The
|
|
4765
4702
|
toolbar has no such wrapper, so fold the same 2px into its offset to keep the
|
|
4766
4703
|
search field top aligned with the provider tiles. */
|
|
4767
|
-
.workbench-window
|
|
4768
|
-
|
|
4769
|
-
|
|
4704
|
+
.workbench-window[data-window-header-layout="overlay"]
|
|
4705
|
+
.agent-gui-node__rail-toolbar,
|
|
4706
|
+
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4770
4707
|
.agent-gui-node__rail-toolbar {
|
|
4771
4708
|
padding-top: calc(var(--agent-gui-workbench-header-height) + 2px);
|
|
4772
4709
|
}
|
|
4773
4710
|
|
|
4774
|
-
.workbench-window
|
|
4775
|
-
|
|
4776
|
-
|
|
4711
|
+
.workbench-window[data-window-header-layout="overlay"]
|
|
4712
|
+
.agent-gui-node__detail-panel,
|
|
4713
|
+
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4777
4714
|
.agent-gui-node__detail-panel {
|
|
4778
4715
|
position: relative;
|
|
4779
4716
|
}
|
|
4780
4717
|
|
|
4781
|
-
.workbench-window
|
|
4782
|
-
|
|
4783
|
-
)
|
|
4718
|
+
.workbench-window[data-window-header-layout="overlay"] .agent-gui-node__detail,
|
|
4719
|
+
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4784
4720
|
.agent-gui-node__detail {
|
|
4785
4721
|
padding-top: var(--agent-gui-workbench-header-height);
|
|
4786
4722
|
}
|
|
4787
4723
|
|
|
4788
|
-
.workbench-window
|
|
4789
|
-
|
|
4790
|
-
|
|
4724
|
+
.workbench-window[data-window-header-layout="overlay"]
|
|
4725
|
+
.agent-gui-node__timeline-with-composer,
|
|
4726
|
+
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4791
4727
|
.agent-gui-node__timeline-with-composer {
|
|
4792
4728
|
padding-top: 20px;
|
|
4793
4729
|
}
|
|
@@ -5280,15 +5216,9 @@ aside.workspace-agents-status-panel
|
|
|
5280
5216
|
pointer-events: auto;
|
|
5281
5217
|
}
|
|
5282
5218
|
|
|
5283
|
-
.workbench-window
|
|
5284
|
-
> .workbench-window__header
|
|
5285
|
-
.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
|
|
5286
|
-
)
|
|
5219
|
+
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
5287
5220
|
.agent-gui-workbench-header__session-title,
|
|
5288
|
-
.workbench-window
|
|
5289
|
-
> .workbench-window__header
|
|
5290
|
-
.agent-gui-workbench-header[data-agent-gui-standalone-window-header="true"]
|
|
5291
|
-
)
|
|
5221
|
+
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
5292
5222
|
.agent-gui-workbench-header__detail-title {
|
|
5293
5223
|
box-sizing: border-box;
|
|
5294
5224
|
width: auto;
|
|
@@ -5389,7 +5319,7 @@ aside.workspace-agents-status-panel
|
|
|
5389
5319
|
margin-left: -4px;
|
|
5390
5320
|
}
|
|
5391
5321
|
|
|
5392
|
-
.workbench-
|
|
5322
|
+
.agent-gui-workbench-header[data-agent-gui-workbench-header-body-error="true"]
|
|
5393
5323
|
.agent-gui-workbench-header__rail-toggle {
|
|
5394
5324
|
display: none !important;
|
|
5395
5325
|
}
|
|
@@ -5570,9 +5500,9 @@ aside.workspace-agents-status-panel
|
|
|
5570
5500
|
);
|
|
5571
5501
|
}
|
|
5572
5502
|
|
|
5573
|
-
.workbench-window
|
|
5574
|
-
|
|
5575
|
-
|
|
5503
|
+
.workbench-window[data-window-header-layout="overlay"]
|
|
5504
|
+
.agent-gui-node__provider-rail-panel::after,
|
|
5505
|
+
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
5576
5506
|
.agent-gui-node__provider-rail-panel::after {
|
|
5577
5507
|
top: var(--agent-gui-workbench-header-height);
|
|
5578
5508
|
}
|
|
@@ -20,7 +20,7 @@ import {
|
|
|
20
20
|
import {
|
|
21
21
|
getOptionalAgentHostApi,
|
|
22
22
|
workspaceAgentProviderLabel
|
|
23
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-K5AOJ5DO.js";
|
|
24
24
|
import {
|
|
25
25
|
translate,
|
|
26
26
|
translateInUiLanguage
|
|
@@ -3049,4 +3049,4 @@ export {
|
|
|
3049
3049
|
AgentMentionSearchController,
|
|
3050
3050
|
preloadAgentMentionBrowse
|
|
3051
3051
|
};
|
|
3052
|
-
//# sourceMappingURL=chunk-
|
|
3052
|
+
//# sourceMappingURL=chunk-4OJSSUEU.js.map
|
|
@@ -6,7 +6,7 @@ import {
|
|
|
6
6
|
import {
|
|
7
7
|
getOptionalAgentHostApi,
|
|
8
8
|
useOptionalAgentHostApi
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-K5AOJ5DO.js";
|
|
10
10
|
import {
|
|
11
11
|
managedAgentRoundedIconUrl
|
|
12
12
|
} from "./chunk-M6HTOCQK.js";
|
|
@@ -3728,4 +3728,4 @@ export {
|
|
|
3728
3728
|
AgentMessageMarkdown,
|
|
3729
3729
|
CustomScrollArea
|
|
3730
3730
|
};
|
|
3731
|
-
//# sourceMappingURL=chunk-
|
|
3731
|
+
//# sourceMappingURL=chunk-FFMVDJOE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../agentActivityRuntime.tsx","../agentActivityHost.tsx","../host/agentHostApi.ts","../shared/workspaceAgentProviderLabel.ts"],"sourcesContent":["import {\n createContext,\n useContext,\n useSyncExternalStore,\n type JSX,\n type PropsWithChildren\n} from \"react\";\nimport type {\n AgentActivityActivateSessionResult,\n AgentActivityCollaborationRun,\n AgentActivityGoalControlInput,\n AgentActivityGoalControlResult,\n AgentActivityCreateSessionInput,\n AgentActivityDeleteSessionInput,\n AgentActivityDeleteSessionResult,\n AgentActivityMessageOrder,\n AgentActivityMessagePage,\n AgentActivityRailPlacement,\n AgentActivityRenameSessionInput,\n AgentActivitySendInput,\n AgentActivitySendInputResult,\n AgentActivitySession,\n AgentActivitySessionSettings,\n AgentActivitySetCollaborationAdoptionInput,\n AgentActivitySnapshot,\n AgentActivitySnapshotListener,\n AgentActivitySubmitInteractiveInput,\n AgentActivitySubmitInteractiveResult,\n AgentActivityUpdateTuttiModeActivationInput,\n AgentActivityUpdateTuttiModeActivationResult,\n AgentSessionEngine\n} from \"@tutti-os/agent-activity-core\";\nimport type {\n AgentHostAgentSessionComposerSettings,\n AgentHostUnactivateAgentSessionResult\n} from \"./shared/contracts/dto\";\nimport type { WorkspaceQueryCache } from \"./shared/query/workspaceQueryCache\";\n\nexport interface AgentActivityRuntimeUpdateSessionSettingsResult {\n agentSessionId: string;\n settings: AgentHostAgentSessionComposerSettings;\n session: AgentActivitySession;\n}\n\nexport interface AgentActivityRuntimeListSessionMessagesInput {\n afterVersion?: number;\n beforeVersion?: number;\n cache?: boolean;\n agentSessionId: string;\n limit?: number;\n order?: AgentActivityMessageOrder;\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeListGeneratedFilesInput {\n agentTargetIds?: readonly string[];\n cursor?: string;\n limit?: number;\n query?: string;\n sectionKey: string;\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeListSessionsPageInput {\n agentTargetId?: string | null;\n cursor?: string;\n limit?: number;\n searchQuery?: string;\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeSessionPageResult {\n hasMore: boolean;\n nextCursor?: string;\n sessions: AgentActivitySession[];\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeListSessionSectionsInput {\n agentTargetId?: string | null;\n limitPerSection?: number;\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeListSessionSectionPageInput {\n agentTargetId?: string | null;\n cursor?: string;\n limit?: number;\n sectionKey: string;\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeListPinnedSessionsPageInput {\n agentTargetId?: string | null;\n cursor?: string;\n limit?: number;\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeUserProject {\n createdAtUnixMs: number;\n id: string;\n label: string;\n lastUsedAtUnixMs?: number;\n path: string;\n pinnedAtUnixMs: number;\n sectionKey: string;\n updatedAtUnixMs: number;\n}\n\nexport interface AgentActivityRuntimeSessionSection {\n kind: \"conversations\" | \"project\";\n sectionKey: string;\n userProject?: AgentActivityRuntimeUserProject;\n sessions: AgentActivitySession[];\n hasMore: boolean;\n totalCount: number;\n nextCursor?: string;\n}\n\nexport interface AgentActivityRuntimeSessionPage {\n sessions: AgentActivitySession[];\n hasMore: boolean;\n totalCount: number;\n nextCursor?: string;\n}\n\nexport interface AgentActivityRuntimeSessionSectionsResult {\n pinned?: AgentActivityRuntimeSessionPage;\n sections: AgentActivityRuntimeSessionSection[];\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeGeneratedFile {\n label: string;\n path: string;\n}\n\nexport interface AgentActivityRuntimeGeneratedFileList {\n entries: AgentActivityRuntimeGeneratedFile[];\n hasMore?: boolean;\n nextCursor?: string;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeEnsureSessionSynchronizedInput {\n afterVersion?: number;\n agentSessionId: string;\n onError?: (error: unknown) => void;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeSetSessionPinnedInput {\n agentSessionId: string;\n pinned: boolean;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeTrackSettingsProjectChangeInput {\n action: \"clear\" | \"create_new\" | \"select_existing\";\n agentSessionId: string;\n provider?: string | null;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeGetComposerOptionsInput {\n agentTargetId: string;\n cwd?: string | null;\n force?: boolean;\n provider?: string;\n settings?: AgentHostAgentSessionComposerSettings | null;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeUpdateSessionSettingsInput {\n agentSessionId: string;\n settings: AgentHostAgentSessionComposerSettings;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeTrackDraftComposerSettingsChangeInput {\n nextSettings: AgentHostAgentSessionComposerSettings;\n previousSettings: AgentHostAgentSessionComposerSettings;\n provider: string;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeDiagnosticInput {\n details?: Record<string, unknown>;\n event: string;\n level?: \"debug\" | \"info\" | \"warn\" | \"error\";\n source?: string;\n workspaceId?: string | null;\n}\n\ninterface AgentActivityRuntimeActivateSessionInputBase {\n agentSessionId: string;\n capabilityRefs?: AgentActivityCreateSessionInput[\"capabilityRefs\"];\n cwd?: string;\n initialContent?: AgentActivitySendInput[\"content\"];\n /** 仅展示用首轮文本(bundle 折叠成一个 chip);initialContent 仍带展开后的文件。 */\n initialDisplayPrompt?: string | null;\n railPlacement?: AgentActivityRailPlacement;\n submitDiagnostics?: AgentActivitySendInput[\"submitDiagnostics\"];\n settings?: AgentActivitySessionSettings;\n title?: string;\n visible?: boolean;\n workspaceId: string;\n signal?: AbortSignal;\n}\n\nexport type AgentActivityRuntimeActivateSessionInput =\n | (AgentActivityRuntimeActivateSessionInputBase & {\n agentTargetId: string;\n clientSubmitId: string;\n initialTuttiModeActivation?: AgentActivityCreateSessionInput[\"initialTuttiModeActivation\"];\n mode: \"new\";\n })\n | (AgentActivityRuntimeActivateSessionInputBase & {\n agentTargetId?: string | null;\n clientSubmitId?: never;\n mode: \"existing\";\n });\n\nexport interface AgentActivityRuntimeUnactivateSessionInput {\n agentSessionId: string;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeReadSessionAttachmentInput {\n agentSessionId: string;\n attachmentId: string;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeReadPromptAssetInput {\n agentSessionId?: string | null;\n assetId?: string | null;\n hostPath?: string | null;\n kind?: string | null;\n mimeType: string;\n name?: string | null;\n path?: string | null;\n sha256?: string | null;\n uploadStatus?: string | null;\n uri?: string | null;\n workspaceId: string;\n}\n\nexport type AgentActivityRuntimePromptContentBlock =\n AgentActivitySendInput[\"content\"][number] & {\n assetId?: string;\n hostPath?: string;\n kind?: string;\n path?: string;\n sizeBytes?: number;\n uploadStatus?: string;\n uri?: string;\n };\n\nexport interface AgentActivityRuntimeUploadPromptContentInput {\n content: AgentActivityRuntimePromptContentBlock[];\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeUploadPromptContentResult {\n content: AgentActivityRuntimePromptContentBlock[];\n}\n\n/**\n * Dedicated host boundary for turning an in-memory text paste into a local\n * prompt asset. The runtime owns persistence and returns a sendable host path;\n * AgentGUI must not infer this capability from generic file-upload support.\n */\nexport interface AgentActivityRuntimeStagePastedTextInput {\n name: string;\n text: string;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeStagePastedTextResult {\n name: string;\n path: string;\n sizeBytes: number;\n}\n\nexport interface AgentActivityRuntimeSessionSectionScopeInput {\n agentTargetId?: string | null;\n excludePinned?: boolean;\n sectionKey: string;\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeSessionSectionDeletionCandidates {\n agentTargetId?: string | null;\n excludePinned: boolean;\n sectionKey: string;\n sessionIds: string[];\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeDeleteSessionsBatchInput {\n sessionIds: string[];\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeDeleteSessionsBatchResult {\n cleanupFailedSessionIds: string[];\n removedMessages: number;\n removedSessionIds: string[];\n removedSessions: number;\n}\n\nexport interface AgentActivityRuntimeSessionAttachment {\n attachmentId: string;\n mimeType: string;\n name?: string;\n data: string;\n}\n\nexport interface AgentActivityRuntimePromptAsset {\n assetId?: string;\n hostPath?: string;\n kind?: string;\n mimeType: string;\n name?: string;\n path: string;\n uploadStatus?: string;\n uri?: string;\n data: string;\n}\n\nexport interface AgentActivityRuntime {\n /**\n * Stable identity of this runtime instance (e.g. a local origin vs a\n * shared/room origin). The runtime owns one session engine per workspace and\n * that engine verifies this origin as part of its injected identity. Runtime\n * consumers resolve only through the nearest React provider; module-global\n * runtime lookup and last-mounted fallback are forbidden. An absent origin\n * means the canonical local origin.\n */\n origin?: string;\n /**\n * The session cwd is not resolvable on the local filesystem (e.g. a\n * shared/cloud sandbox not mounted locally), so AgentGUI must not run its\n * local stat-based \"working directory missing\" existence check — it would\n * always false-positive. Absent/false (default) => local, legacy behaviour.\n * Only that one guard is gated; project selection/listing is unaffected.\n */\n projectPathIsRemote?: boolean;\n promptContentUploadSupport?: {\n file?: boolean;\n image?: boolean;\n };\n /** Set false to suppress AgentGUI diagnostics in development consoles. */\n devDiagnosticConsoleSink?: boolean;\n goalControl(\n input: AgentActivityGoalControlInput\n ): Promise<AgentActivityGoalControlResult>;\n createSession(\n input: AgentActivityCreateSessionInput\n ): Promise<AgentActivitySession>;\n deleteSession(\n input: AgentActivityDeleteSessionInput\n ): Promise<AgentActivityDeleteSessionResult>;\n activateSession(\n input: AgentActivityRuntimeActivateSessionInput\n ): Promise<AgentActivityActivateSessionResult>;\n getSession(\n workspaceId: string,\n agentSessionId: string\n ): Promise<AgentActivitySession>;\n getComposerOptions(\n input: AgentActivityRuntimeGetComposerOptionsInput\n ): Promise<unknown>;\n updateSessionSettings(\n input: AgentActivityRuntimeUpdateSessionSettingsInput\n ): Promise<AgentActivityRuntimeUpdateSessionSettingsResult>;\n updateTuttiModeActivation(\n input: AgentActivityUpdateTuttiModeActivationInput\n ): Promise<AgentActivityUpdateTuttiModeActivationResult>;\n getSnapshot(workspaceId: string): AgentActivitySnapshot;\n getSessionEngine(workspaceId: string): AgentSessionEngine;\n getSessionSectionsQueryCache?(\n workspaceId: string\n ): WorkspaceQueryCache<unknown>;\n listSessionMessages(\n input: AgentActivityRuntimeListSessionMessagesInput\n ): Promise<AgentActivityMessagePage>;\n listAgentGeneratedFiles?(\n input: AgentActivityRuntimeListGeneratedFilesInput\n ): Promise<AgentActivityRuntimeGeneratedFileList>;\n listSessionsPage?(\n input: AgentActivityRuntimeListSessionsPageInput\n ): Promise<AgentActivityRuntimeSessionPageResult>;\n listSessionSections?(\n input: AgentActivityRuntimeListSessionSectionsInput\n ): Promise<AgentActivityRuntimeSessionSectionsResult>;\n listSessionSectionPage?(\n input: AgentActivityRuntimeListSessionSectionPageInput\n ): Promise<AgentActivityRuntimeSessionSection>;\n listSessionSectionDeletionCandidates?(\n input: AgentActivityRuntimeSessionSectionScopeInput\n ): Promise<AgentActivityRuntimeSessionSectionDeletionCandidates>;\n deleteSessionsBatch?(\n input: AgentActivityRuntimeDeleteSessionsBatchInput\n ): Promise<AgentActivityRuntimeDeleteSessionsBatchResult>;\n listPinnedSessionsPage?(\n input: AgentActivityRuntimeListPinnedSessionsPageInput\n ): Promise<AgentActivityRuntimeSessionPage>;\n load(\n workspaceId: string,\n signal?: AbortSignal\n ): Promise<AgentActivitySnapshot>;\n ensureSessionSynchronized?(\n input: AgentActivityRuntimeEnsureSessionSynchronizedInput\n ): () => void;\n sendInput(\n input: AgentActivitySendInput\n ): Promise<AgentActivitySendInputResult>;\n uploadPromptContent?(\n input: AgentActivityRuntimeUploadPromptContentInput\n ): Promise<AgentActivityRuntimeUploadPromptContentResult>;\n stagePastedText?(\n input: AgentActivityRuntimeStagePastedTextInput\n ): Promise<AgentActivityRuntimeStagePastedTextResult>;\n readSessionAttachment?(\n input: AgentActivityRuntimeReadSessionAttachmentInput\n ): Promise<AgentActivityRuntimeSessionAttachment>;\n readPromptAsset?(\n input: AgentActivityRuntimeReadPromptAssetInput\n ): Promise<AgentActivityRuntimePromptAsset>;\n renameSession(\n input: AgentActivityRenameSessionInput\n ): Promise<AgentActivitySession>;\n /**\n * Record whether a collaboration outcome was adopted.\n * Optional; hosts without support omit it and adoption controls stay hidden.\n */\n setCollaborationAdoption?(\n input: AgentActivitySetCollaborationAdoptionInput\n ): Promise<AgentActivityCollaborationRun>;\n setSessionPinned(\n input: AgentActivityRuntimeSetSessionPinnedInput\n ): Promise<AgentActivitySession>;\n trackSettingsProjectChange?(\n input: AgentActivityRuntimeTrackSettingsProjectChangeInput\n ): Promise<void>;\n trackDraftComposerSettingsChange?(\n input: AgentActivityRuntimeTrackDraftComposerSettingsChangeInput\n ): Promise<void>;\n reportDiagnostic?(\n input: AgentActivityRuntimeDiagnosticInput\n ): Promise<void> | void;\n unactivateSession(\n input: AgentActivityRuntimeUnactivateSessionInput\n ): Promise<AgentHostUnactivateAgentSessionResult>;\n submitInteractive(\n input: AgentActivitySubmitInteractiveInput\n ): Promise<AgentActivitySubmitInteractiveResult>;\n subscribeSessionEvents(\n workspaceId: string,\n listener: (event: unknown) => void\n ): () => void;\n subscribe(\n workspaceId: string,\n listener: AgentActivitySnapshotListener\n ): () => void;\n}\n\nconst AgentActivityRuntimeContext = createContext<AgentActivityRuntime | null>(\n null\n);\n\nfunction createTestAgentActivityRuntimeHolder(): {\n get: () => AgentActivityRuntime | null;\n set: (runtime: AgentActivityRuntime | null) => void;\n} {\n let runtime: AgentActivityRuntime | null = null;\n return {\n get: () => runtime,\n set: (nextRuntime) => {\n runtime = nextRuntime;\n }\n };\n}\n\nconst testAgentActivityRuntimeHolder = createTestAgentActivityRuntimeHolder();\n\nexport interface AgentActivityRuntimeProviderProps extends PropsWithChildren {\n runtime?: AgentActivityRuntime | null;\n}\n\nexport function AgentActivityRuntimeProvider({\n children,\n runtime\n}: AgentActivityRuntimeProviderProps): JSX.Element {\n return (\n <AgentActivityRuntimeContext.Provider value={runtime ?? null}>\n {children}\n </AgentActivityRuntimeContext.Provider>\n );\n}\n\nexport function useAgentActivityRuntime(): AgentActivityRuntime {\n const runtime =\n useContext(AgentActivityRuntimeContext) ?? getTestAgentActivityRuntime();\n if (!runtime) {\n throw new Error(\n \"AgentActivityRuntimeProvider is missing an AgentActivityRuntime instance.\"\n );\n }\n return runtime;\n}\n\nexport function useOptionalAgentActivityRuntime(): AgentActivityRuntime | null {\n return (\n useContext(AgentActivityRuntimeContext) ?? getTestAgentActivityRuntime()\n );\n}\n\nexport function useAgentActivitySnapshot(\n workspaceId: string\n): AgentActivitySnapshot {\n const runtime = useAgentActivityRuntime();\n const normalizedWorkspaceId = workspaceId.trim();\n return useSyncExternalStore(\n (listener) => runtime.subscribe(normalizedWorkspaceId, listener),\n () => runtime.getSnapshot(normalizedWorkspaceId),\n () => runtime.getSnapshot(normalizedWorkspaceId)\n );\n}\n\nexport function resetAgentActivityRuntimeForTests(): void {\n if (process.env.NODE_ENV === \"test\") {\n testAgentActivityRuntimeHolder.set(null);\n }\n}\n\nexport function setAgentActivityRuntimeForTests(\n runtime: AgentActivityRuntime | null\n): void {\n if (process.env.NODE_ENV === \"test\") {\n testAgentActivityRuntimeHolder.set(runtime);\n }\n}\n\nfunction getTestAgentActivityRuntime(): AgentActivityRuntime | null {\n if (process.env.NODE_ENV !== \"test\") {\n return null;\n }\n if (typeof window === \"undefined\") {\n return null;\n }\n const explicitRuntime = getExplicitWindowTestAgentActivityRuntime();\n if (explicitRuntime) {\n return explicitRuntime;\n }\n const testRuntimeOverride = testAgentActivityRuntimeHolder.get();\n if (testRuntimeOverride) {\n return testRuntimeOverride;\n }\n const testRuntime = (\n window as unknown as Window & {\n agentActivityRuntime?: AgentActivityRuntime;\n }\n ).agentActivityRuntime;\n return testRuntime ?? null;\n}\n\nfunction getExplicitWindowTestAgentActivityRuntime(): AgentActivityRuntime | null {\n if (process.env.NODE_ENV !== \"test\" || typeof window === \"undefined\") {\n return null;\n }\n const testDescriptor = Object.getOwnPropertyDescriptor(\n window,\n \"agentActivityRuntime\"\n );\n if (!testDescriptor || !(\"value\" in testDescriptor)) {\n return null;\n }\n return (testDescriptor.value as AgentActivityRuntime | undefined) ?? null;\n}\n","import {\n createContext,\n useContext,\n useMemo,\n type JSX,\n type PropsWithChildren\n} from \"react\";\nimport {\n toAgentHostRuntimeApi,\n type AgentHostInputApi,\n type AgentHostRuntimeApi\n} from \"./host/agentHostApi\";\nimport {\n AgentActivityRuntimeProvider,\n type AgentActivityRuntime\n} from \"./agentActivityRuntime\";\n\nconst AgentActivityHostContext = createContext<AgentHostRuntimeApi | null>(\n null\n);\n\nlet currentAgentHostApi: AgentHostRuntimeApi | null = null;\n\nexport interface AgentActivityHostProviderProps extends PropsWithChildren {\n agentActivityRuntime?: AgentActivityRuntime | null;\n agentHostApi?: AgentHostInputApi | null;\n}\n\nexport function AgentActivityHostProvider({\n agentActivityRuntime,\n agentHostApi,\n children\n}: AgentActivityHostProviderProps): JSX.Element {\n const resolvedAgentHostApi = useMemo(\n () => (agentHostApi ? toAgentHostRuntimeApi(agentHostApi) : null),\n [agentHostApi]\n );\n currentAgentHostApi = resolvedAgentHostApi;\n return (\n <AgentActivityRuntimeProvider runtime={agentActivityRuntime}>\n <AgentActivityHostContext.Provider value={resolvedAgentHostApi}>\n {children}\n </AgentActivityHostContext.Provider>\n </AgentActivityRuntimeProvider>\n );\n}\n\nexport function useAgentHostApi(): AgentHostRuntimeApi {\n const agentHostApi =\n useContext(AgentActivityHostContext) ?? getTestAgentHostApi();\n if (!agentHostApi) {\n throw new Error(\n \"AgentActivityHostProvider is missing an agentHostApi instance.\"\n );\n }\n return agentHostApi;\n}\n\nexport function useOptionalAgentHostApi(): AgentHostRuntimeApi | null {\n return useContext(AgentActivityHostContext) ?? getTestAgentHostApi();\n}\n\nexport function getOptionalAgentHostApi(): AgentHostRuntimeApi | null {\n return (\n getExplicitWindowTestAgentHostApi() ??\n currentAgentHostApi ??\n getTestAgentHostApi()\n );\n}\n\nexport function resetAgentHostApiForTests(): void {\n if (process.env.NODE_ENV === \"test\") {\n currentAgentHostApi = null;\n }\n}\n\nexport function setAgentHostApiForTests(\n agentHostApi: AgentHostInputApi | AgentHostRuntimeApi | null\n): void {\n if (process.env.NODE_ENV === \"test\") {\n currentAgentHostApi = agentHostApi\n ? toAgentHostRuntimeApi(agentHostApi)\n : null;\n }\n}\n\nfunction getTestAgentHostApi(): AgentHostRuntimeApi | null {\n if (process.env.NODE_ENV !== \"test\") {\n return null;\n }\n if (typeof window === \"undefined\") {\n return null;\n }\n const explicitAgentHostApi = getExplicitWindowTestAgentHostApi();\n if (explicitAgentHostApi) {\n return explicitAgentHostApi;\n }\n if (currentAgentHostApi) {\n return currentAgentHostApi;\n }\n const testAgentHostApi = (\n window as unknown as Window & {\n agentHostApi?: AgentHostInputApi | AgentHostRuntimeApi;\n }\n ).agentHostApi;\n return testAgentHostApi ? toAgentHostRuntimeApi(testAgentHostApi) : null;\n}\n\nfunction getExplicitWindowTestAgentHostApi(): AgentHostRuntimeApi | null {\n if (process.env.NODE_ENV !== \"test\" || typeof window === \"undefined\") {\n return null;\n }\n const testDescriptor = Object.getOwnPropertyDescriptor(\n window,\n \"agentHostApi\"\n );\n if (!testDescriptor || !(\"value\" in testDescriptor)) {\n return null;\n }\n const testAgentHostApi = testDescriptor.value as\n | AgentHostInputApi\n | AgentHostRuntimeApi\n | undefined;\n return testAgentHostApi ? toAgentHostRuntimeApi(testAgentHostApi) : null;\n}\n","import type {\n AgentHostBatchUserInfoInput,\n AgentHostBatchUserInfoResult,\n AgentHostListWorkspaceAgentProbesInput,\n AgentHostWorkspaceAgentProbesResult,\n PersistWriteResult,\n ReadWorkspaceAgentReadStateInput,\n ReadWorkspaceFileResult as AgentHostReadWorkspaceFileResult,\n WorkspaceAgentReadStateSnapshot,\n WriteWorkspaceAgentReadStateInput\n} from \"../shared/contracts/dto\";\nimport type { WorkspaceUserProjectService } from \"@tutti-os/workspace-user-project/contracts\";\n\ntype AgentHostAsyncResult<T = any> = Promise<T>;\ntype AgentHostRecord = Record<string, unknown>;\ntype AgentHostUnsubscribe = () => void;\n\nexport type AgentHostClipboardApi = {\n writeImage?: (input: {\n data: string;\n mimeType: \"image/png\";\n }) => AgentHostAsyncResult<void>;\n writeText: (text: string) => AgentHostAsyncResult<void>;\n};\n\nexport type AgentHostDebugApi = {\n logRuntimeDiagnostics: (\n payload: unknown\n ) => AgentHostAsyncResult<void> | void;\n logTerminalDiagnostics?: (\n payload: unknown\n ) => AgentHostAsyncResult<void> | void;\n};\n\nexport type AgentHostFilesystemApi = AgentHostRecord & {\n readFileText: (payload: {\n path?: string;\n uri?: string;\n }) => AgentHostAsyncResult<{\n content: string;\n name?: string;\n path?: string;\n }>;\n};\n\nexport type AgentHostMetaApi = AgentHostRecord & {\n appVersion?: string | null;\n isPackaged?: boolean;\n isTest?: boolean;\n mainPid?: number | null;\n platform?: string;\n workspaceId?: string;\n};\n\nexport type AgentHostEnvironmentApi = AgentHostRecord & {\n getBaseUrl?: () => AgentHostAsyncResult<string>;\n};\n\nexport interface AgentHostQuickPrompt {\n id: string;\n title: string;\n content: string;\n version: number;\n createdAtUnixMs: number;\n updatedAtUnixMs: number;\n}\n\nexport interface AgentHostQuickPromptSnapshot {\n enabled: boolean;\n status: \"idle\" | \"loading\" | \"ready\" | \"error\";\n prompts: readonly AgentHostQuickPrompt[];\n error: string | null;\n revision: number;\n pendingMutationIds: readonly string[];\n orderMutationPending?: boolean;\n}\n\nexport interface AgentHostQuickPromptsApi {\n ensureLoaded: (input?: { force?: boolean }) => AgentHostAsyncResult<void>;\n getSnapshot: () => AgentHostQuickPromptSnapshot;\n subscribe: (\n listener: (snapshot: AgentHostQuickPromptSnapshot) => void\n ) => AgentHostUnsubscribe;\n create: (input: {\n title: string;\n content: string;\n }) => AgentHostAsyncResult<AgentHostQuickPrompt>;\n update: (input: {\n id: string;\n title: string;\n content: string;\n expectedVersion: number;\n }) => AgentHostAsyncResult<AgentHostQuickPrompt>;\n remove: (input: {\n id: string;\n expectedVersion: number;\n }) => AgentHostAsyncResult<void>;\n move?: (input: {\n promptId: string;\n beforePromptId: string | null;\n expectedVersion: number;\n }) => AgentHostAsyncResult<readonly AgentHostQuickPrompt[]>;\n}\n\nexport type AgentHostPersistenceApi = AgentHostRecord & {\n readWorkspaceAgentReadState: (\n input: ReadWorkspaceAgentReadStateInput\n ) => AgentHostAsyncResult<WorkspaceAgentReadStateSnapshot>;\n writeWorkspaceAgentReadState: (\n input: WriteWorkspaceAgentReadStateInput\n ) => AgentHostAsyncResult<PersistWriteResult>;\n};\n\nexport type AgentHostToastHandle = {\n /** Settles the toast to a neutral, non-error, non-success tone. */\n info: (title: string, description?: string) => void;\n /** Settles the toast to the destructive tone. */\n reject: (title: string, description?: string) => void;\n /** Settles the toast to the success tone. */\n resolve: (title: string, description?: string) => void;\n};\n\nexport type AgentHostToastApi = AgentHostRecord & {\n error: (title: string, description?: string) => void;\n info?: (title: string, description?: string) => void;\n /**\n * Opens one toast that stays mounted across async work: it shows busy\n * (spinner, no auto-dismiss) until the returned handle settles it in\n * place, at which point it starts auto-dismissing like any other toast.\n */\n loading?: (title: string) => AgentHostToastHandle;\n success?: (title: string, description?: string) => void;\n};\n\nexport interface AgentHostSelectedFile {\n name?: string;\n path: string;\n}\n\nexport interface AgentHostSelectFilesInput {\n allowDirectories?: boolean;\n}\n\nexport interface AgentHostApplyWorkspaceGitPatchInput {\n allowBinary?: boolean;\n atomic?: boolean;\n cwd: string;\n diff: string;\n revert?: boolean;\n target?: \"unstaged\" | \"staged\" | \"staged-and-unstaged\";\n}\n\nexport interface AgentHostApplyWorkspaceGitPatchResult {\n status: \"success\" | \"partial-success\" | \"error\";\n appliedPaths: string[];\n skippedPaths: string[];\n conflictedPaths: string[];\n errorCode?: \"not-git-repo\" | string;\n execOutput?: {\n command: string;\n stdout: string;\n stderr: string;\n };\n}\n\nexport interface AgentHostResolveWorkspaceGitPatchSupportInput {\n cwd: string;\n}\n\nexport interface AgentHostResolveWorkspaceGitPatchSupportResult {\n supported: boolean;\n root?: string;\n errorCode?: \"not-git-repo\" | string;\n}\n\nexport type AgentHostWorkspaceApi = AgentHostRecord & {\n applyGitPatch?: (\n input: AgentHostApplyWorkspaceGitPatchInput\n ) => AgentHostAsyncResult<AgentHostApplyWorkspaceGitPatchResult>;\n resolveGitPatchSupport?: (\n input: AgentHostResolveWorkspaceGitPatchSupportInput\n ) => AgentHostAsyncResult<AgentHostResolveWorkspaceGitPatchSupportResult>;\n copyPath?: (input: { path: string }) => AgentHostAsyncResult<void>;\n ensureDirectory: (input: { path: string }) => AgentHostAsyncResult<void>;\n readFile: (input: {\n path: string;\n }) => AgentHostAsyncResult<AgentHostReadWorkspaceFileResult>;\n selectContextEntries?: () => AgentHostAsyncResult<{ entries: unknown[] }>;\n selectDirectory: () => AgentHostAsyncResult<{ path: string } | null>;\n selectFiles: (\n input?: AgentHostSelectFilesInput\n ) => AgentHostAsyncResult<AgentHostSelectedFile[]>;\n writeFileText: (input: {\n content: string;\n path: string;\n }) => AgentHostAsyncResult<unknown>;\n};\n\nexport interface AgentHostInputApi {\n account?: AgentHostAccountApi;\n agentSessions?: AgentHostAgentSessionsApi;\n agentTargetSetup?: AgentHostAgentTargetSetupApi;\n clipboard: AgentHostClipboardApi;\n debug?: AgentHostDebugApi;\n filesystem: AgentHostFilesystemApi;\n meta?: AgentHostMetaApi;\n onHostEvent?: (listener: (event: any) => void) => AgentHostUnsubscribe;\n persistence?: AgentHostPersistenceApi;\n quickPrompts?: AgentHostQuickPromptsApi;\n runtime?: AgentHostEnvironmentApi;\n toast?: AgentHostToastApi;\n userProjects?: AgentHostUserProjectsApi;\n workspace: AgentHostWorkspaceApi;\n workspaceAgentProbes?: AgentHostWorkspaceAgentProbesApi;\n}\n\nexport type AgentHostApi = AgentHostInputApi;\n\nexport type AgentHostAccountApi = AgentHostRecord & {\n batchGetUserInfo: (\n input: AgentHostBatchUserInfoInput\n ) => AgentHostAsyncResult<AgentHostBatchUserInfoResult>;\n ensureProfiles?: (input: any) => AgentHostAsyncResult<any>;\n};\n\nexport type AgentHostWorkspaceAgentProbesApi = AgentHostRecord & {\n list: (\n input: AgentHostListWorkspaceAgentProbesInput\n ) => AgentHostAsyncResult<AgentHostWorkspaceAgentProbesResult>;\n};\n\nexport interface AgentHostAgentTargetInstallPlan {\n packageName: string;\n packageVersion: string;\n runner: \"npm\" | \"pnpm\" | \"uv\" | \"binary\";\n planDigest: string;\n installRoot: string;\n}\n\nexport interface AgentHostAgentTargetSetupAction {\n actionId: string;\n clientActionId: string;\n kind: \"install\" | \"authenticate\";\n status: \"queued\" | \"running\" | \"succeeded\" | \"failed\" | \"interrupted\";\n phase:\n | \"preparing\"\n | \"installing\"\n | \"verifying\"\n | \"probing\"\n | \"activating\"\n | \"authenticating\"\n | \"complete\";\n errorCode: string | null;\n errorMessage: string | null;\n}\n\nexport interface AgentHostAgentTargetSetupSnapshot {\n agentTargetId: string;\n status:\n | \"ready\"\n | \"auth_required\"\n | \"not_installed\"\n | \"installing\"\n | \"authenticating\"\n | \"failed\";\n runtimeSource: \"local\" | \"managed\" | null;\n runtimeVersion: string | null;\n reason: string | null;\n authMethods: AgentHostAgentTargetAuthMethod[];\n account: AgentHostAgentTargetAuthenticatedAccount | null;\n plan: AgentHostAgentTargetInstallPlan | null;\n action: AgentHostAgentTargetSetupAction | null;\n}\n\nexport interface AgentHostAgentTargetAuthenticatedAccount {\n id: string;\n displayName: string;\n authMethodId: string;\n organization: string | null;\n}\n\nexport interface AgentHostAgentTargetAuthMethod {\n id: string;\n name: string;\n description?: string | null;\n}\n\nexport interface AgentHostAgentTargetSetupState {\n snapshot: AgentHostAgentTargetSetupSnapshot | null;\n loading: boolean;\n failed: boolean;\n}\n\nexport interface AgentHostAgentTargetSetupWatch {\n getSnapshot: () => AgentHostAgentTargetSetupState;\n subscribe: (\n listener: (state: AgentHostAgentTargetSetupState) => void\n ) => AgentHostUnsubscribe;\n install: (input: {\n planDigest: string;\n clientActionId: string;\n }) => AgentHostAsyncResult<void>;\n authenticate: (input: {\n methodId: string;\n clientActionId: string;\n }) => AgentHostAsyncResult<void>;\n refresh: () => AgentHostAsyncResult<void>;\n}\n\nexport type AgentHostAgentTargetSetupApi = AgentHostRecord & {\n watch: (input: { agentTargetId: string }) => AgentHostAgentTargetSetupWatch;\n};\n\nexport type AgentProviderProbeListInput =\n AgentHostListWorkspaceAgentProbesInput;\nexport type AgentProviderProbeListResult = AgentHostWorkspaceAgentProbesResult;\n\nexport interface AgentHostUserProject {\n id: string;\n path: string;\n label: string;\n pinnedAtUnixMs: number;\n sectionKey?: string;\n createdAtUnixMs?: number;\n updatedAtUnixMs?: number;\n lastUsedAtUnixMs?: number;\n}\n\nexport type AgentHostUserProjectsApi = AgentHostRecord & {\n service?: WorkspaceUserProjectService;\n checkPath?: (input: { path: string }) => AgentHostAsyncResult<{\n exists: boolean;\n isDirectory: boolean;\n path: string;\n }>;\n create?: (input: {\n name: string;\n }) => AgentHostAsyncResult<AgentHostUserProject>;\n getDefaultSelection?: () => AgentHostAsyncResult<{\n path: string | null;\n } | null>;\n list: () => AgentHostAsyncResult<{\n projects: AgentHostUserProject[];\n }>;\n move?: (input: {\n beforeProjectId: string | null;\n projectId: string;\n }) => AgentHostAsyncResult<void>;\n pin: (input: {\n pinned: boolean;\n projectId: string;\n }) => AgentHostAsyncResult<void>;\n subscribe?: (listener: () => void) => AgentHostUnsubscribe;\n prepareSelection?: (input: {\n projectLocked: boolean;\n selectedPath: string | null;\n }) => AgentHostAsyncResult<{\n isSelectedPathMissing: boolean;\n projects: AgentHostUserProject[];\n selection:\n | {\n kind: \"clear\";\n suppressedPath: string;\n }\n | {\n kind: \"none\";\n }\n | {\n kind: \"select\";\n path: string;\n };\n }>;\n remove?: (input: { path: string }) => AgentHostAsyncResult<void>;\n isNoProjectPath?: (input: { path: string }) => boolean;\n rememberDefaultSelection?: (input: {\n path: string | null;\n }) => AgentHostAsyncResult<void>;\n use: (input: { path: string }) => AgentHostAsyncResult<AgentHostUserProject>;\n};\n\nexport type AgentHostAgentSessionsApi = AgentHostRecord & {\n activate: (input: any) => AgentHostAsyncResult<any>;\n getComposerOptions?: (input: any) => AgentHostAsyncResult<any>;\n getState: (input: any) => AgentHostAsyncResult<any>;\n onEvent?: (listener: (event: any) => void) => AgentHostUnsubscribe;\n subscribeEvents: (\n input: any,\n listener: (event: any) => void\n ) => AgentHostUnsubscribe;\n unactivate: (input: any) => AgentHostAsyncResult<any>;\n updateSettings: (input: any) => AgentHostAsyncResult<any>;\n};\n\nexport interface AgentHostRuntimeApi {\n account?: AgentHostAccountApi;\n agentTargetSetup?: AgentHostAgentTargetSetupApi;\n clipboard: AgentHostClipboardApi;\n debug?: AgentHostDebugApi;\n filesystem: AgentHostFilesystemApi;\n meta?: AgentHostMetaApi;\n onHostEvent?: (listener: (event: any) => void) => AgentHostUnsubscribe;\n persistence?: AgentHostPersistenceApi;\n quickPrompts?: AgentHostQuickPromptsApi;\n runtime?: AgentHostEnvironmentApi;\n toast?: AgentHostToastApi;\n userProjects?: AgentHostUserProjectsApi;\n workspace: AgentHostWorkspaceApi;\n workspaceAgentProbes?: AgentHostWorkspaceAgentProbesApi;\n}\n\nexport function toAgentHostRuntimeApi(\n hostApi: AgentHostInputApi | AgentHostRuntimeApi\n): AgentHostRuntimeApi {\n return {\n account: hostApi.account,\n agentTargetSetup: hostApi.agentTargetSetup,\n clipboard: hostApi.clipboard,\n debug: hostApi.debug,\n filesystem: hostApi.filesystem,\n meta: hostApi.meta,\n onHostEvent: hostApi.onHostEvent,\n persistence: hostApi.persistence,\n quickPrompts: hostApi.quickPrompts,\n runtime: hostApi.runtime,\n toast: hostApi.toast,\n userProjects: hostApi.userProjects,\n workspace: hostApi.workspace,\n workspaceAgentProbes: hostApi.workspaceAgentProbes\n };\n}\n","import {\n agentGUIProviderIdentityDisplayName,\n resolveMigratedAgentGUIProviderIdentity\n} from \"../providerIdentityCatalog.ts\";\nimport { translate } from \"../i18n/index.ts\";\n\nexport function workspaceAgentProviderLabel(provider: string): string {\n const normalized = provider.trim().toLowerCase();\n const migratedIdentity = resolveMigratedAgentGUIProviderIdentity(normalized);\n if (migratedIdentity) {\n return agentGUIProviderIdentityDisplayName(migratedIdentity, translate);\n }\n return titleCase(provider);\n}\n\nfunction titleCase(value: string): string {\n return value\n .split(/[-_\\s]+/)\n .filter(Boolean)\n .map((part) => part.charAt(0).toUpperCase() + part.slice(1))\n .join(\" \");\n}\n"],"mappings":"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","names":["createContext","useContext","jsx","createContext","useContext"]}
|