@tutti-os/agent-gui 0.0.33 → 0.0.34
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/README.md +5 -0
- package/dist/{AgentMessageMarkdown-Cp70W-Z2.d.ts → AgentMessageMarkdown-CU6gRvTm.d.ts} +53 -2
- package/dist/agent-conversation/index.d.ts +4 -4
- package/dist/agent-conversation/index.js +5 -5
- package/dist/agent-message-center/index.d.ts +2 -2
- package/dist/agent-message-center/index.js +29 -8
- package/dist/agent-message-center/index.js.map +1 -1
- package/dist/{agentConversationVM-BElW2LNR.d.ts → agentConversationVM-xuzmD5IL.d.ts} +2 -0
- package/dist/app/renderer/agentactivity.css +53 -76
- package/dist/{chunk-SGQ4C7JE.js → chunk-2ADVHCST.js} +2 -1
- package/dist/chunk-2ADVHCST.js.map +1 -0
- package/dist/{chunk-ERRANBGS.js → chunk-I5GHWK6X.js} +7 -11
- package/dist/chunk-I5GHWK6X.js.map +1 -0
- package/dist/{chunk-ZWYHKGQ7.js → chunk-NCS7X3XY.js} +11 -9
- package/dist/{chunk-ZWYHKGQ7.js.map → chunk-NCS7X3XY.js.map} +1 -1
- package/dist/{chunk-A4KUAXE5.js → chunk-PVEFWBH6.js} +2 -2
- package/dist/{chunk-WPWZKKKV.js → chunk-RUO6SDNC.js} +2 -2
- package/dist/{chunk-OOQIJXCA.js → chunk-SV4UKLJO.js} +3 -2
- package/dist/{chunk-RDCBACWR.js → chunk-TCKH7GZ6.js} +5 -5
- package/dist/{chunk-RQ3HEF42.js → chunk-TQFYX7KY.js} +36 -6
- package/dist/chunk-TQFYX7KY.js.map +1 -0
- package/dist/{chunk-AFTAFV2C.js → chunk-XPVYQUFK.js} +78 -12
- package/dist/chunk-XPVYQUFK.js.map +1 -0
- package/dist/{chunk-GSZPMKFW.js → chunk-ZR2LZVN6.js} +229 -21
- package/dist/chunk-ZR2LZVN6.js.map +1 -0
- package/dist/context-mention-palette/index.js +6 -6
- package/dist/i18n/index.d.ts +34 -4
- package/dist/i18n/index.js +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.js +892 -198
- package/dist/index.js.map +1 -1
- package/dist/plan-decision-ops.d.ts +1 -1
- package/dist/workbench/contribution.js +1 -1
- package/dist/workbench/index.js +1 -1
- package/dist/workspace-agent-generated-files.js +2 -2
- package/dist/{workspaceLinkActions-CqWZaCY4.d.ts → workspaceLinkActions-C6POH38D.d.ts} +7 -1
- package/package.json +12 -12
- package/dist/chunk-AFTAFV2C.js.map +0 -1
- package/dist/chunk-ERRANBGS.js.map +0 -1
- package/dist/chunk-GSZPMKFW.js.map +0 -1
- package/dist/chunk-RQ3HEF42.js.map +0 -1
- package/dist/chunk-SGQ4C7JE.js.map +0 -1
- /package/dist/{chunk-A4KUAXE5.js.map → chunk-PVEFWBH6.js.map} +0 -0
- /package/dist/{chunk-WPWZKKKV.js.map → chunk-RUO6SDNC.js.map} +0 -0
- /package/dist/{chunk-OOQIJXCA.js.map → chunk-SV4UKLJO.js.map} +0 -0
- /package/dist/{chunk-RDCBACWR.js.map → chunk-TCKH7GZ6.js.map} +0 -0
|
@@ -18,6 +18,7 @@ interface WorkspaceAgentSessionDetailMessage {
|
|
|
18
18
|
systemNotice?: {
|
|
19
19
|
noticeKind: string | null;
|
|
20
20
|
severity: string | null;
|
|
21
|
+
source?: string | null;
|
|
21
22
|
title: string | null;
|
|
22
23
|
detail: string | null;
|
|
23
24
|
retryable: boolean | null;
|
|
@@ -158,6 +159,7 @@ interface AgentMessageContentVM {
|
|
|
158
159
|
systemNotice?: {
|
|
159
160
|
noticeKind: string | null;
|
|
160
161
|
severity: string | null;
|
|
162
|
+
source?: string | null;
|
|
161
163
|
title: string | null;
|
|
162
164
|
detail: string | null;
|
|
163
165
|
retryable: boolean | null;
|
|
@@ -162,9 +162,9 @@
|
|
|
162
162
|
[data-testid="workspace-agent-message-center"] {
|
|
163
163
|
--agent-gui-package-accent: var(--accent-codex);
|
|
164
164
|
--agent-gui-package-accent-strong: var(--accent-codex);
|
|
165
|
-
--agent-gui-package-success:
|
|
166
|
-
--agent-gui-package-warning:
|
|
167
|
-
--agent-gui-package-danger:
|
|
165
|
+
--agent-gui-package-success: var(--state-success);
|
|
166
|
+
--agent-gui-package-warning: var(--state-warning);
|
|
167
|
+
--agent-gui-package-danger: var(--state-danger);
|
|
168
168
|
--agent-gui-accent: var(--agent-gui-package-accent);
|
|
169
169
|
--agent-gui-accent-strong: var(--agent-gui-package-accent-strong);
|
|
170
170
|
--agent-gui-success: var(--agent-gui-package-success);
|
|
@@ -3808,9 +3808,9 @@ aside.workspace-agents-status-panel
|
|
|
3808
3808
|
var(--agent-gui-package-accent) 12%
|
|
3809
3809
|
);
|
|
3810
3810
|
--agent-gui-package-border-focus: var(--accent-codex-border);
|
|
3811
|
-
--agent-gui-package-success:
|
|
3812
|
-
--agent-gui-package-warning:
|
|
3813
|
-
--agent-gui-package-danger:
|
|
3811
|
+
--agent-gui-package-success: var(--state-success);
|
|
3812
|
+
--agent-gui-package-warning: var(--state-warning);
|
|
3813
|
+
--agent-gui-package-danger: var(--state-danger);
|
|
3814
3814
|
--agent-gui-accent: var(--agent-gui-package-accent);
|
|
3815
3815
|
--agent-gui-accent-strong: var(--agent-gui-package-accent-strong);
|
|
3816
3816
|
--agent-gui-accent-bg: var(--agent-gui-package-accent-bg);
|
|
@@ -3856,12 +3856,13 @@ aside.workspace-agents-status-panel
|
|
|
3856
3856
|
}
|
|
3857
3857
|
|
|
3858
3858
|
.agent-gui-node__rail-panel {
|
|
3859
|
+
position: relative;
|
|
3860
|
+
z-index: 2;
|
|
3859
3861
|
min-width: 0;
|
|
3860
3862
|
min-height: 0;
|
|
3861
3863
|
height: 100%;
|
|
3862
|
-
border-right: 1px solid var(--line-
|
|
3863
|
-
overflow:
|
|
3864
|
-
position: relative;
|
|
3864
|
+
border-right: 1px solid var(--agent-gui-border-subtle, var(--line-2));
|
|
3865
|
+
overflow: visible;
|
|
3865
3866
|
isolation: isolate;
|
|
3866
3867
|
}
|
|
3867
3868
|
|
|
@@ -3983,6 +3984,8 @@ aside.workspace-agents-status-panel
|
|
|
3983
3984
|
}
|
|
3984
3985
|
|
|
3985
3986
|
.agent-gui-node__rail-toolbar {
|
|
3987
|
+
--agent-gui-rail-control-radius: 6px;
|
|
3988
|
+
|
|
3986
3989
|
display: grid;
|
|
3987
3990
|
grid-template-columns: minmax(0, 1fr) max-content;
|
|
3988
3991
|
align-items: center;
|
|
@@ -4104,8 +4107,23 @@ aside.workspace-agents-status-panel
|
|
|
4104
4107
|
flex: 1 1 auto;
|
|
4105
4108
|
width: 100%;
|
|
4106
4109
|
min-width: 0;
|
|
4110
|
+
box-sizing: border-box;
|
|
4111
|
+
height: 32px !important;
|
|
4112
|
+
min-height: 32px;
|
|
4113
|
+
max-height: 32px;
|
|
4114
|
+
border: 0 !important;
|
|
4115
|
+
border-radius: var(--agent-gui-rail-control-radius) !important;
|
|
4107
4116
|
padding-left: 12px;
|
|
4108
4117
|
padding-right: 36px;
|
|
4118
|
+
font-size: 13px !important;
|
|
4119
|
+
line-height: 18px;
|
|
4120
|
+
appearance: none;
|
|
4121
|
+
}
|
|
4122
|
+
|
|
4123
|
+
.room-issue-node__search-input:hover,
|
|
4124
|
+
.room-issue-node__search-input:focus,
|
|
4125
|
+
.room-issue-node__search-input:focus-visible {
|
|
4126
|
+
background: var(--transparency-hover);
|
|
4109
4127
|
}
|
|
4110
4128
|
|
|
4111
4129
|
.room-issue-node__search-field[data-has-value="false"]
|
|
@@ -4170,16 +4188,20 @@ aside.workspace-agents-status-panel
|
|
|
4170
4188
|
flex: 0 0 auto;
|
|
4171
4189
|
width: auto;
|
|
4172
4190
|
min-width: max-content;
|
|
4191
|
+
box-sizing: border-box;
|
|
4173
4192
|
height: 32px;
|
|
4174
4193
|
min-height: 32px;
|
|
4175
|
-
|
|
4194
|
+
max-height: 32px;
|
|
4195
|
+
border: 0 !important;
|
|
4196
|
+
border-radius: var(--agent-gui-rail-control-radius) !important;
|
|
4197
|
+
font-size: 13px;
|
|
4176
4198
|
gap: 8px;
|
|
4177
4199
|
white-space: nowrap;
|
|
4178
4200
|
}
|
|
4179
4201
|
|
|
4180
4202
|
.agent-gui-node__new-conversation-icon-button svg {
|
|
4181
|
-
width:
|
|
4182
|
-
height:
|
|
4203
|
+
width: 14px;
|
|
4204
|
+
height: 14px;
|
|
4183
4205
|
flex-shrink: 0;
|
|
4184
4206
|
}
|
|
4185
4207
|
|
|
@@ -4436,45 +4458,16 @@ button.agent-gui-node__conversation-section-toggle:hover
|
|
|
4436
4458
|
}
|
|
4437
4459
|
|
|
4438
4460
|
.agent-gui-node__conversation-section-action-tooltip-wrap {
|
|
4439
|
-
position: relative;
|
|
4440
4461
|
display: inline-flex;
|
|
4441
4462
|
flex: none;
|
|
4442
4463
|
}
|
|
4443
4464
|
|
|
4444
4465
|
.agent-gui-node__conversation-section-action-tooltip {
|
|
4445
|
-
position: absolute;
|
|
4446
|
-
top: calc(100% + 6px);
|
|
4447
|
-
left: 50%;
|
|
4448
|
-
z-index: var(--z-tooltip);
|
|
4449
4466
|
max-width: 180px;
|
|
4450
|
-
padding: 5px 8px;
|
|
4451
|
-
border: 1px solid var(--line-2, var(--tutti-line-2));
|
|
4452
|
-
border-radius: 6px;
|
|
4453
|
-
background: var(--background-fronted);
|
|
4454
|
-
box-shadow: 0 10px 26px rgb(0 0 0 / 0.18);
|
|
4455
|
-
color: var(--text-primary);
|
|
4456
|
-
font-size: 11px;
|
|
4457
|
-
font-weight: 500;
|
|
4458
|
-
line-height: 1.2;
|
|
4459
|
-
opacity: 0;
|
|
4460
|
-
overflow: hidden;
|
|
4461
|
-
pointer-events: none;
|
|
4462
4467
|
text-overflow: ellipsis;
|
|
4463
|
-
transform: translate(-50%, -2px);
|
|
4464
|
-
transition:
|
|
4465
|
-
opacity 120ms ease,
|
|
4466
|
-
transform 120ms ease;
|
|
4467
4468
|
white-space: nowrap;
|
|
4468
4469
|
}
|
|
4469
4470
|
|
|
4470
|
-
.agent-gui-node__conversation-section-action-tooltip-wrap:hover
|
|
4471
|
-
.agent-gui-node__conversation-section-action-tooltip,
|
|
4472
|
-
.agent-gui-node__conversation-section-action-tooltip-wrap:focus-within
|
|
4473
|
-
.agent-gui-node__conversation-section-action-tooltip {
|
|
4474
|
-
opacity: 1;
|
|
4475
|
-
transform: translate(-50%, 0);
|
|
4476
|
-
}
|
|
4477
|
-
|
|
4478
4471
|
.agent-gui-node__conversation-section-more-button {
|
|
4479
4472
|
flex: none;
|
|
4480
4473
|
opacity: 0;
|
|
@@ -5493,46 +5486,30 @@ button.agent-gui-node__conversation-section-toggle:hover
|
|
|
5493
5486
|
|
|
5494
5487
|
.agent-gui-node__provider-setup-notice {
|
|
5495
5488
|
position: absolute;
|
|
5496
|
-
top:
|
|
5497
|
-
right: var(--agent-gui-detail-padding-x);
|
|
5489
|
+
top: 8px;
|
|
5498
5490
|
left: var(--agent-gui-detail-padding-x);
|
|
5499
5491
|
z-index: 2;
|
|
5500
|
-
display: flex;
|
|
5501
|
-
align-items: center;
|
|
5502
|
-
gap: 8px;
|
|
5503
5492
|
box-sizing: border-box;
|
|
5493
|
+
width: max-content;
|
|
5494
|
+
max-width: min(calc(100% - (var(--agent-gui-detail-padding-x) * 2)), 420px);
|
|
5504
5495
|
margin: 0;
|
|
5505
|
-
border: 1px solid
|
|
5506
|
-
color-mix(
|
|
5507
|
-
in srgb,
|
|
5508
|
-
var(--agent-gui-warning, var(--state-warning)) 26%,
|
|
5509
|
-
transparent
|
|
5510
|
-
);
|
|
5511
|
-
border-radius: 8px;
|
|
5512
|
-
padding: 8px 10px;
|
|
5513
|
-
color: var(--agent-gui-warning, var(--state-warning));
|
|
5514
|
-
background: color-mix(
|
|
5515
|
-
in srgb,
|
|
5516
|
-
var(--agent-gui-warning, var(--state-warning)) 9%,
|
|
5517
|
-
transparent
|
|
5518
|
-
);
|
|
5519
|
-
font-size: 13px;
|
|
5520
|
-
line-height: 18px;
|
|
5521
5496
|
pointer-events: auto;
|
|
5522
5497
|
}
|
|
5523
5498
|
|
|
5524
5499
|
.agent-gui-node__detail-header + .agent-gui-node__provider-setup-notice {
|
|
5525
|
-
top: calc(64px +
|
|
5500
|
+
top: calc(64px + 4px);
|
|
5526
5501
|
}
|
|
5527
5502
|
|
|
5528
|
-
.agent-gui-node__provider-setup-notice-
|
|
5503
|
+
.agent-gui-node__provider-setup-notice-action {
|
|
5529
5504
|
flex: 0 0 auto;
|
|
5505
|
+
margin-left: auto;
|
|
5506
|
+
border: 0;
|
|
5507
|
+
padding: 0;
|
|
5508
|
+
background: transparent;
|
|
5530
5509
|
color: currentColor;
|
|
5531
|
-
|
|
5532
|
-
|
|
5533
|
-
|
|
5534
|
-
min-width: 0;
|
|
5535
|
-
overflow-wrap: anywhere;
|
|
5510
|
+
font: inherit;
|
|
5511
|
+
text-decoration: underline;
|
|
5512
|
+
cursor: pointer;
|
|
5536
5513
|
}
|
|
5537
5514
|
|
|
5538
5515
|
.agent-gui-node__layout [data-slot="status-dot"],
|
|
@@ -5580,25 +5557,25 @@ button.agent-gui-node__conversation-section-toggle:hover
|
|
|
5580
5557
|
.agent-gui-node__layout [data-slot="status-dot"][data-tone="green"],
|
|
5581
5558
|
[data-testid="workspace-agent-message-center"]
|
|
5582
5559
|
[data-slot="status-dot"][data-tone="green"] {
|
|
5583
|
-
--agent-gui-status-dot-color: var(--
|
|
5560
|
+
--agent-gui-status-dot-color: var(--state-success);
|
|
5584
5561
|
}
|
|
5585
5562
|
|
|
5586
5563
|
.agent-gui-node__layout [data-slot="status-dot"][data-tone="blue"],
|
|
5587
5564
|
[data-testid="workspace-agent-message-center"]
|
|
5588
5565
|
[data-slot="status-dot"][data-tone="blue"] {
|
|
5589
|
-
--agent-gui-status-dot-color: var(--
|
|
5566
|
+
--agent-gui-status-dot-color: var(--status-running);
|
|
5590
5567
|
}
|
|
5591
5568
|
|
|
5592
5569
|
.agent-gui-node__layout [data-slot="status-dot"][data-tone="amber"],
|
|
5593
5570
|
[data-testid="workspace-agent-message-center"]
|
|
5594
5571
|
[data-slot="status-dot"][data-tone="amber"] {
|
|
5595
|
-
--agent-gui-status-dot-color: var(--
|
|
5572
|
+
--agent-gui-status-dot-color: var(--state-warning);
|
|
5596
5573
|
}
|
|
5597
5574
|
|
|
5598
5575
|
.agent-gui-node__layout [data-slot="status-dot"][data-tone="red"],
|
|
5599
5576
|
[data-testid="workspace-agent-message-center"]
|
|
5600
5577
|
[data-slot="status-dot"][data-tone="red"] {
|
|
5601
|
-
--agent-gui-status-dot-color: var(--
|
|
5578
|
+
--agent-gui-status-dot-color: var(--state-danger);
|
|
5602
5579
|
}
|
|
5603
5580
|
|
|
5604
5581
|
.agent-gui-node__layout [data-slot="status-dot"][data-pulse="true"],
|
|
@@ -6828,9 +6805,9 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
|
|
|
6828
6805
|
--agent-gui-border-subtle: var(--line-2);
|
|
6829
6806
|
--agent-gui-package-accent: var(--tutti-purple);
|
|
6830
6807
|
--agent-gui-package-accent-strong: var(--tutti-purple);
|
|
6831
|
-
--agent-gui-package-success:
|
|
6832
|
-
--agent-gui-package-warning:
|
|
6833
|
-
--agent-gui-package-danger:
|
|
6808
|
+
--agent-gui-package-success: var(--state-success);
|
|
6809
|
+
--agent-gui-package-warning: var(--state-warning);
|
|
6810
|
+
--agent-gui-package-danger: var(--state-danger);
|
|
6834
6811
|
--agent-gui-accent: var(--agent-gui-package-accent);
|
|
6835
6812
|
--agent-gui-accent-strong: var(--agent-gui-package-accent-strong);
|
|
6836
6813
|
--agent-gui-success: var(--agent-gui-package-success);
|
|
@@ -107,6 +107,7 @@ function toAgentHostRuntimeApi(hostApi) {
|
|
|
107
107
|
filesystem: hostApi.filesystem,
|
|
108
108
|
meta: hostApi.meta,
|
|
109
109
|
onHostEvent: hostApi.onHostEvent,
|
|
110
|
+
persistence: hostApi.persistence,
|
|
110
111
|
runtime: hostApi.runtime,
|
|
111
112
|
userProjects: hostApi.userProjects,
|
|
112
113
|
workspace: hostApi.workspace,
|
|
@@ -193,4 +194,4 @@ export {
|
|
|
193
194
|
useOptionalAgentHostApi,
|
|
194
195
|
getOptionalAgentHostApi
|
|
195
196
|
};
|
|
196
|
-
//# sourceMappingURL=chunk-
|
|
197
|
+
//# sourceMappingURL=chunk-2ADVHCST.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../agentActivityRuntime.tsx","../agentActivityHost.tsx","../host/agentHostApi.ts"],"sourcesContent":["import {\n createContext,\n useContext,\n useSyncExternalStore,\n type JSX,\n type PropsWithChildren\n} from \"react\";\nimport type {\n AgentActivityCancelSessionInput,\n AgentActivityCancelSessionResult,\n AgentActivityCreateSessionInput,\n AgentActivityDeleteSessionInput,\n AgentActivityDeleteSessionResult,\n AgentActivityMessageOrder,\n AgentActivityMessagePage,\n AgentActivitySendInput,\n AgentActivitySendInputResult,\n AgentActivitySession,\n AgentActivitySnapshot,\n AgentActivitySnapshotListener,\n AgentActivitySubmitInteractiveInput\n} from \"@tutti-os/agent-activity-core\";\nimport type {\n AgentHostAgentSessionComposerSettings,\n AgentHostActivateAgentSessionResult,\n AgentHostRuntimeOpenclawGatewayWarmupResult,\n AgentHostUpdateAgentSessionSettingsResult,\n AgentHostUnactivateAgentSessionResult,\n AgentHostAgentSessionState\n} from \"./shared/contracts/dto\";\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 limit?: number;\n query?: string;\n sessionCwd?: string;\n signal?: AbortSignal;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeGeneratedFile {\n label: string;\n path: string;\n}\n\nexport interface AgentActivityRuntimeGeneratedFileList {\n entries: AgentActivityRuntimeGeneratedFile[];\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 type AgentActivityRuntimeRetainSessionEventsInput =\n AgentActivityRuntimeEnsureSessionSynchronizedInput;\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 AgentActivityRuntimeGetSessionControlStateInput {\n agentSessionId: string;\n workspaceId: string;\n}\n\nexport interface AgentActivityRuntimeGetComposerOptionsInput {\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 AgentActivityRuntimeWarmupOpenclawGatewayInput {\n workspaceId?: string | null;\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\nexport interface AgentActivityRuntimeActivateSessionInput {\n agentSessionId: string;\n cwd?: string;\n initialContent?: AgentActivitySendInput[\"content\"];\n /** 仅展示用首轮文本(bundle 折叠成一个 chip);initialContent 仍带展开后的文件。 */\n initialDisplayPrompt?: string | null;\n metadata?: Record<string, unknown>;\n mode: \"existing\" | \"new\";\n openclawGatewayReady?: boolean;\n provider?: string;\n settings?: AgentHostAgentSessionComposerSettings;\n title?: string;\n visible?: boolean;\n workspaceId: string;\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\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 cancelSession(\n input: AgentActivityCancelSessionInput\n ): Promise<AgentActivityCancelSessionResult>;\n createSession(\n input: AgentActivityCreateSessionInput\n ): Promise<AgentActivitySession>;\n deleteSession(\n input: AgentActivityDeleteSessionInput\n ): Promise<AgentActivityDeleteSessionResult>;\n activateSession(\n input: AgentActivityRuntimeActivateSessionInput\n ): Promise<AgentHostActivateAgentSessionResult>;\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<AgentHostUpdateAgentSessionSettingsResult>;\n warmupOpenclawGateway?(\n input?: AgentActivityRuntimeWarmupOpenclawGatewayInput\n ): Promise<AgentHostRuntimeOpenclawGatewayWarmupResult>;\n getSessionControlState(\n input: AgentActivityRuntimeGetSessionControlStateInput\n ): Promise<AgentHostAgentSessionState>;\n getSnapshot(workspaceId: string): AgentActivitySnapshot;\n listSessionMessages(\n input: AgentActivityRuntimeListSessionMessagesInput\n ): Promise<AgentActivityMessagePage>;\n listAgentGeneratedFiles?(\n input: AgentActivityRuntimeListGeneratedFilesInput\n ): Promise<AgentActivityRuntimeGeneratedFileList>;\n load(\n workspaceId: string,\n signal?: AbortSignal\n ): Promise<AgentActivitySnapshot>;\n ensureSessionSynchronized?(\n input: AgentActivityRuntimeEnsureSessionSynchronizedInput\n ): () => void;\n /** @deprecated Use ensureSessionSynchronized. */\n retainSessionEvents(\n input: AgentActivityRuntimeRetainSessionEventsInput\n ): () => void;\n sendInput(\n input: AgentActivitySendInput\n ): Promise<AgentActivitySendInputResult>;\n uploadPromptContent?(\n input: AgentActivityRuntimeUploadPromptContentInput\n ): Promise<AgentActivityRuntimeUploadPromptContentResult>;\n readSessionAttachment?(\n input: AgentActivityRuntimeReadSessionAttachmentInput\n ): Promise<AgentActivityRuntimeSessionAttachment>;\n readPromptAsset?(\n input: AgentActivityRuntimeReadPromptAssetInput\n ): Promise<AgentActivityRuntimePromptAsset>;\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<unknown>;\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\nlet currentAgentActivityRuntime: AgentActivityRuntime | null = null;\n\nexport interface AgentActivityRuntimeProviderProps extends PropsWithChildren {\n runtime?: AgentActivityRuntime | null;\n}\n\nexport function AgentActivityRuntimeProvider({\n children,\n runtime\n}: AgentActivityRuntimeProviderProps): JSX.Element {\n currentAgentActivityRuntime = runtime ?? null;\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 getAgentActivityRuntime(): AgentActivityRuntime {\n const runtime =\n getExplicitWindowTestAgentActivityRuntime() ??\n currentAgentActivityRuntime ??\n getTestAgentActivityRuntime();\n if (!runtime) {\n throw new Error(\n \"AgentActivityRuntimeProvider is missing an AgentActivityRuntime instance.\"\n );\n }\n return runtime;\n}\n\nexport function getOptionalAgentActivityRuntime(): AgentActivityRuntime | null {\n return (\n getExplicitWindowTestAgentActivityRuntime() ??\n currentAgentActivityRuntime ??\n getTestAgentActivityRuntime()\n );\n}\n\nexport function resetAgentActivityRuntimeForTests(): void {\n if (process.env.NODE_ENV === \"test\") {\n currentAgentActivityRuntime = null;\n }\n}\n\nexport function setAgentActivityRuntimeForTests(\n runtime: AgentActivityRuntime | null\n): void {\n if (process.env.NODE_ENV === \"test\") {\n currentAgentActivityRuntime = 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 if (currentAgentActivityRuntime) {\n return currentAgentActivityRuntime;\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 getAgentHostApi(): AgentHostRuntimeApi {\n const agentHostApi =\n getExplicitWindowTestAgentHostApi() ??\n currentAgentHostApi ??\n getTestAgentHostApi();\n if (!agentHostApi) {\n throw new Error(\n \"AgentActivityHostProvider is missing an agentHostApi instance.\"\n );\n }\n return agentHostApi;\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 AgentHostDeleteWorkspaceAgentSessionInput,\n AgentHostWorkspaceAgentListInput as AgentHostListWorkspaceAgentsInput,\n AgentHostListWorkspaceAgentProbesInput,\n AgentHostWorkspaceAgentSessionMessages,\n AgentHostWorkspaceAgentSessionMessagesInput,\n AgentHostWorkspaceAgentSessionSummary,\n AgentHostWorkspaceAgentSessionSummaryInput,\n AgentHostWorkspaceAgentProbesResult,\n AgentHostWorkspaceAgentSnapshot,\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;\ntype AgentHostWorkspaceScopedInput<\n T extends {\n workspaceId?: string | null;\n }\n> = Omit<T, \"workspaceId\"> & {\n workspaceId: string;\n};\ntype AgentHostWorkspaceAgentsListInput =\n AgentHostWorkspaceScopedInput<AgentHostListWorkspaceAgentsInput>;\ntype AgentHostWorkspaceAgentSessionMessagesRuntimeInput =\n AgentHostWorkspaceScopedInput<AgentHostWorkspaceAgentSessionMessagesInput>;\ntype AgentHostWorkspaceAgentSessionSummaryRuntimeInput =\n AgentHostWorkspaceScopedInput<AgentHostWorkspaceAgentSessionSummaryInput>;\ntype AgentHostDeleteWorkspaceAgentSessionRuntimeInput =\n AgentHostWorkspaceScopedInput<AgentHostDeleteWorkspaceAgentSessionInput>;\n\nexport type AgentHostClipboardApi = {\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 warmupOpenclawGateway?: (input?: unknown) => AgentHostAsyncResult<unknown>;\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 interface AgentHostSelectedFile {\n name?: string;\n path: string;\n}\n\nexport interface AgentHostSelectFilesInput {\n allowDirectories?: boolean;\n}\n\nexport type AgentHostWorkspaceApi = AgentHostRecord & {\n copyPath?: (input: { path: string }) => AgentHostAsyncResult<void>;\n ensureDirectory: (input: { path: string }) => AgentHostAsyncResult<void>;\n getPathForFile: (file: File) => string;\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 agentGuiBatch?: AgentHostAgentGuiBatchApi;\n agentSessions?: AgentHostAgentSessionsApi;\n clipboard: AgentHostClipboardApi;\n debug?: AgentHostDebugApi;\n filesystem: AgentHostFilesystemApi;\n meta?: AgentHostMetaApi;\n onHostEvent?: (listener: (event: any) => void) => AgentHostUnsubscribe;\n persistence?: AgentHostPersistenceApi;\n runtime?: AgentHostEnvironmentApi;\n userProjects?: AgentHostUserProjectsApi;\n workspace: AgentHostWorkspaceApi;\n workspaceAgentProbes?: AgentHostWorkspaceAgentProbesApi;\n workspaceAgents?: AgentHostWorkspaceAgentsApi;\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 AgentHostAgentGuiBatchApi = AgentHostRecord & {\n exportRun: (input: any) => AgentHostAsyncResult<any>;\n};\n\nexport type AgentHostWorkspaceAgentProbesApi = AgentHostRecord & {\n list: (\n input: AgentHostListWorkspaceAgentProbesInput\n ) => AgentHostAsyncResult<AgentHostWorkspaceAgentProbesResult>;\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 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 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 /**\n * @deprecated AgentGUI production writes must use AgentActivityRuntime.cancelSession.\n */\n cancel: (input: any) => AgentHostAsyncResult<any>;\n /**\n * @deprecated AgentGUI production writes must use AgentActivityRuntime.sendInput.\n */\n exec: (input: any) => AgentHostAsyncResult<any>;\n getComposerOptions?: (input: any) => AgentHostAsyncResult<any>;\n getState: (input: any) => AgentHostAsyncResult<any>;\n onEvent?: (listener: (event: any) => void) => AgentHostUnsubscribe;\n /**\n * @deprecated AgentGUI production writes must use AgentActivityRuntime.setSessionPinned.\n */\n pinSession?: (input: any) => AgentHostAsyncResult<any>;\n /**\n * @deprecated AgentGUI production sync must use AgentActivityRuntime.ensureSessionSynchronized.\n */\n releaseEventStream?: (input?: any) => AgentHostAsyncResult;\n /**\n * @deprecated AgentGUI production sync must use AgentActivityRuntime.ensureSessionSynchronized.\n */\n retainEventStream?: (input: any) => AgentHostAsyncResult;\n /**\n * @deprecated AgentGUI production writes must use AgentActivityRuntime.submitInteractive.\n */\n submitInteractive: (input: any) => AgentHostAsyncResult<any>;\n /**\n * @deprecated AgentGUI production UI must derive events from AgentActivityRuntime snapshots.\n */\n trackSettingsProjectChange?: (input: {\n action: \"clear\" | \"create_new\" | \"select_existing\";\n agentSessionId: string;\n provider?: string | null;\n }) => AgentHostAsyncResult<void>;\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\n/**\n * @deprecated Legacy host DTO projection. AgentGUI production reads and writes\n * must use AgentActivityRuntime and AgentActivity* models.\n */\nexport type AgentHostWorkspaceAgentsApi = AgentHostRecord & {\n /**\n * @deprecated Use AgentActivityRuntime.deleteSession.\n */\n deleteSession: (\n input: AgentHostDeleteWorkspaceAgentSessionRuntimeInput\n ) => AgentHostAsyncResult<any>;\n /**\n * @deprecated Derive summaries from AgentActivitySnapshot/session messages.\n */\n getSessionSummary: (\n input: AgentHostWorkspaceAgentSessionSummaryRuntimeInput\n ) => AgentHostAsyncResult<AgentHostWorkspaceAgentSessionSummary>;\n /**\n * @deprecated Use AgentActivityRuntime.load/getSnapshot.\n */\n list: (\n input: string | AgentHostWorkspaceAgentsListInput\n ) => AgentHostAsyncResult<AgentHostWorkspaceAgentSnapshot>;\n /**\n * @deprecated Use AgentActivityRuntime.listSessionMessages.\n */\n listSessionMessages: (\n input: AgentHostWorkspaceAgentSessionMessagesRuntimeInput\n ) => AgentHostAsyncResult<AgentHostWorkspaceAgentSessionMessages>;\n};\n\nexport interface AgentHostRuntimeApi {\n account?: AgentHostAccountApi;\n agentGuiBatch: AgentHostAgentGuiBatchApi;\n clipboard: AgentHostClipboardApi;\n debug?: AgentHostDebugApi;\n filesystem: AgentHostFilesystemApi;\n meta?: AgentHostMetaApi;\n onHostEvent?: (listener: (event: any) => void) => AgentHostUnsubscribe;\n persistence?: AgentHostPersistenceApi;\n runtime?: AgentHostEnvironmentApi;\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 agentGuiBatch: hostApi.agentGuiBatch ?? ({} as AgentHostAgentGuiBatchApi),\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 runtime: hostApi.runtime,\n userProjects: hostApi.userProjects,\n workspace: hostApi.workspace,\n workspaceAgentProbes: hostApi.workspaceAgentProbes\n };\n}\n"],"mappings":"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","names":["createContext","useContext","jsx","createContext","useContext"]}
|
|
@@ -3,19 +3,19 @@ import {
|
|
|
3
3
|
managedAgentRoundedIconUrl,
|
|
4
4
|
userAvatarPlaceholderUrl,
|
|
5
5
|
workspaceAgentActivityStatusLabel
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-RUO6SDNC.js";
|
|
7
7
|
import {
|
|
8
8
|
normalizeAgentSessionMentionTitle
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-PVEFWBH6.js";
|
|
10
10
|
import {
|
|
11
11
|
getOptionalAgentHostApi
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-2ADVHCST.js";
|
|
13
13
|
import {
|
|
14
14
|
AGENT_CONTEXT_MENTION_PROVIDER_IDS
|
|
15
15
|
} from "./chunk-JM24HADP.js";
|
|
16
16
|
import {
|
|
17
17
|
translate
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-TQFYX7KY.js";
|
|
19
19
|
import {
|
|
20
20
|
resolveAgentMentionFileThumbnailUrl,
|
|
21
21
|
resolveAgentMentionFileVisualKind
|
|
@@ -1184,7 +1184,6 @@ var AgentMentionSearchController = class {
|
|
|
1184
1184
|
workspaceId: input.workspaceId,
|
|
1185
1185
|
currentUserId: input.currentUserId,
|
|
1186
1186
|
query: input.query,
|
|
1187
|
-
limit: DEFAULT_MENTION_GROUP_PAGE_SIZE,
|
|
1188
1187
|
sessionCwd: input.sessionCwd,
|
|
1189
1188
|
diagnostics: providerDiagnostics
|
|
1190
1189
|
});
|
|
@@ -1359,10 +1358,7 @@ var AgentMentionSearchController = class {
|
|
|
1359
1358
|
return buildEmptyGroup(groupId, this.currentQuery);
|
|
1360
1359
|
}
|
|
1361
1360
|
const pageSize = mentionGroupPageSize(this.currentFilter, groupId);
|
|
1362
|
-
const visibleCount = Math.min(
|
|
1363
|
-
items.length,
|
|
1364
|
-
this.expandedCounts[groupId] ?? pageSize
|
|
1365
|
-
);
|
|
1361
|
+
const visibleCount = groupId === "apps" ? items.length : Math.min(items.length, this.expandedCounts[groupId] ?? pageSize);
|
|
1366
1362
|
const totalCount = resolveMentionGroupTotalCount(
|
|
1367
1363
|
groupId,
|
|
1368
1364
|
this.totalCounts,
|
|
@@ -1373,7 +1369,7 @@ var AgentMentionSearchController = class {
|
|
|
1373
1369
|
items: items.slice(0, visibleCount),
|
|
1374
1370
|
totalCount,
|
|
1375
1371
|
visibleCount,
|
|
1376
|
-
hasMore: items.length > visibleCount || (groupId === "opened_files" || groupId === "files" || groupId === "agent_generated_files") && items.length >= this.currentFileSearchLimit || totalCount > visibleCount
|
|
1372
|
+
hasMore: groupId !== "apps" && (items.length > visibleCount || (groupId === "opened_files" || groupId === "files" || groupId === "agent_generated_files") && items.length >= this.currentFileSearchLimit || totalCount > visibleCount)
|
|
1377
1373
|
};
|
|
1378
1374
|
}).filter((group) => group !== null);
|
|
1379
1375
|
}
|
|
@@ -2126,4 +2122,4 @@ export {
|
|
|
2126
2122
|
AgentFileMentionPalette,
|
|
2127
2123
|
AgentContextMentionPalette
|
|
2128
2124
|
};
|
|
2129
|
-
//# sourceMappingURL=chunk-
|
|
2125
|
+
//# sourceMappingURL=chunk-I5GHWK6X.js.map
|