@tutti-os/agent-gui 0.0.216 → 0.0.218
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 +6 -0
- package/dist/{agentFileMentionContracts-BeBex-Sf.d.ts → AgentMentionSearchContracts-y1_u9cPi.d.ts} +73 -1
- package/dist/{AgentRichTextReadonly-IPPNAAWG.js → AgentRichTextReadonly-NBYQHR6U.js} +9 -9
- package/dist/agent-conversation/index.js +11 -11
- package/dist/agent-gui.d.ts +16 -3
- package/dist/agent-gui.js +26 -25
- package/dist/agent-message-center/index.js +8 -8
- package/dist/app/renderer/agentactivity.css +93 -69
- package/dist/app/renderer/assets/icons/agent-vinyl-player-chassis.png +0 -0
- package/dist/app/renderer/assets/icons/agent-vinyl-tonearm.png +0 -0
- package/dist/app/renderer/assets/icons/agent-vinyls/claude-vinyl.png +0 -0
- package/dist/app/renderer/assets/icons/agent-vinyls/codex-vinyl.png +0 -0
- package/dist/app/renderer/assets/icons/agent-vinyls/cursor-vinyl.png +0 -0
- package/dist/app/renderer/assets/icons/agent-vinyls/openclaw-vinyl.png +0 -0
- package/dist/app/renderer/assets/icons/agent-vinyls/opencode-vinyl.png +0 -0
- package/dist/app/renderer/assets/icons/agent-vinyls/tutti-vinyl.png +0 -0
- package/dist/app/renderer/assets/icons/agents/agent-colorful.png +0 -0
- package/dist/app/renderer/assets/icons/agents/claude-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/codex-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/cursor-colorful.png +0 -0
- package/dist/app/renderer/assets/icons/agents/cursor-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/gemini-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/manage-agent-tutti.png +0 -0
- package/dist/app/renderer/assets/icons/agents/openclaw-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/opencode-rounded.png +0 -0
- package/dist/app/renderer/assets/icons/agents/provider-rail-claude-code-colorful.png +0 -0
- package/dist/app/renderer/assets/icons/agents/provider-rail-codex-colorful.png +0 -0
- package/dist/app/renderer/assets/icons/agents/provider-rail-opencode-colorful.png +0 -0
- package/dist/app/renderer/assets/icons/agents/provider-rail-tutti.png +0 -0
- package/dist/app/renderer/assets/icons/user-avatar-placeholder.png +0 -0
- package/dist/{chunk-VMPPZO5C.js → chunk-2QF3RBR4.js} +4 -4
- package/dist/{chunk-M6HTOCQK.js → chunk-3X5VDG6T.js} +2 -2
- package/dist/chunk-6GX57XB5.js +135 -0
- package/dist/chunk-6GX57XB5.js.map +1 -0
- package/dist/{chunk-MOCBHFJ2.js → chunk-7V5XYXKB.js} +44 -120
- package/dist/chunk-7V5XYXKB.js.map +1 -0
- package/dist/chunk-BCBB4HOV.js +56 -0
- package/dist/{chunk-DLN33TPF.js → chunk-F6J3LJXK.js} +8 -8
- package/dist/{chunk-UERICUWM.js → chunk-GLVENTN6.js} +2 -2
- package/dist/{chunk-DTP2OMCE.js → chunk-KRITI65C.js} +10 -12
- package/dist/chunk-KRITI65C.js.map +1 -0
- package/dist/{chunk-EZRQMJTX.js → chunk-KZIW5CCW.js} +4 -4
- package/dist/{chunk-QFYOJMEQ.js → chunk-M6WEFXPL.js} +2 -2
- package/dist/chunk-OB7GGK6S.js +44534 -0
- package/dist/chunk-OB7GGK6S.js.map +1 -0
- package/dist/{chunk-G7DS23D4.js → chunk-PPA2OB2H.js} +2 -2
- package/dist/{chunk-YY5WM3OE.js → chunk-PZWBLTYH.js} +242 -81
- package/dist/chunk-PZWBLTYH.js.map +1 -0
- package/dist/chunk-SEHJINGH.js +150 -0
- package/dist/{chunk-4CHBM3G3.js → chunk-SUVMLCED.js} +5 -5
- package/dist/{chunk-B4TM2HYJ.js → chunk-SWO67UWQ.js} +6 -6
- package/dist/{chunk-6A6OVD66.js → chunk-UC2QN7FK.js} +44 -18
- package/dist/chunk-UC2QN7FK.js.map +1 -0
- package/dist/{chunk-Z5UJC4Q3.js → chunk-Z35E22WS.js} +4 -4
- package/dist/{chunk-P2RIZAK5.js → chunk-ZXEICU6J.js} +3 -1
- package/dist/chunk-ZXEICU6J.js.map +1 -0
- package/dist/context-mention-palette/index.d.ts +3 -3
- package/dist/context-mention-palette/index.js +14 -14
- package/dist/dock-icons.js +2 -2
- package/dist/headerLayout-CP4ujEbo.d.ts +14 -0
- package/dist/i18n/index.d.ts +2 -0
- package/dist/i18n/index.js +2 -2
- package/dist/index.d.ts +77 -46
- package/dist/index.js +49 -42
- package/dist/index.js.map +1 -1
- package/dist/layout.d.ts +7 -0
- package/dist/layout.js +9 -0
- package/dist/layout.js.map +1 -0
- package/dist/mention-search.d.ts +6 -73
- package/dist/mention-search.js +10 -10
- package/dist/provider-icons.js +1 -1
- package/dist/workbench/browser-element-context/index.js +2 -2
- package/dist/workbench/contribution.js +9 -8
- package/dist/workbench/index.d.ts +3 -1
- package/dist/workbench/index.js +12 -11
- package/dist/workbench/launch.js +2 -2
- package/dist/workbench/sessionTitle.js +2 -2
- package/dist/workbench/tool-sidebar/index.d.ts +14 -13
- package/dist/workbench/tool-sidebar/index.js +66 -55
- package/dist/workbench/tool-sidebar/index.js.map +1 -1
- package/package.json +22 -15
- package/dist/chunk-6A6OVD66.js.map +0 -1
- package/dist/chunk-AOK22J62.js +0 -56
- package/dist/chunk-DTP2OMCE.js.map +0 -1
- package/dist/chunk-KJA3HHUJ.js +0 -44291
- package/dist/chunk-KJA3HHUJ.js.map +0 -1
- package/dist/chunk-MOCBHFJ2.js.map +0 -1
- package/dist/chunk-P2RIZAK5.js.map +0 -1
- package/dist/chunk-QNE2ZPPV.js +0 -150
- package/dist/chunk-YY5WM3OE.js.map +0 -1
- /package/dist/{AgentRichTextReadonly-IPPNAAWG.js.map → AgentRichTextReadonly-NBYQHR6U.js.map} +0 -0
- /package/dist/{chunk-VMPPZO5C.js.map → chunk-2QF3RBR4.js.map} +0 -0
- /package/dist/{chunk-M6HTOCQK.js.map → chunk-3X5VDG6T.js.map} +0 -0
- /package/dist/{chunk-AOK22J62.js.map → chunk-BCBB4HOV.js.map} +0 -0
- /package/dist/{chunk-DLN33TPF.js.map → chunk-F6J3LJXK.js.map} +0 -0
- /package/dist/{chunk-UERICUWM.js.map → chunk-GLVENTN6.js.map} +0 -0
- /package/dist/{chunk-EZRQMJTX.js.map → chunk-KZIW5CCW.js.map} +0 -0
- /package/dist/{chunk-QFYOJMEQ.js.map → chunk-M6WEFXPL.js.map} +0 -0
- /package/dist/{chunk-G7DS23D4.js.map → chunk-PPA2OB2H.js.map} +0 -0
- /package/dist/{chunk-QNE2ZPPV.js.map → chunk-SEHJINGH.js.map} +0 -0
- /package/dist/{chunk-4CHBM3G3.js.map → chunk-SUVMLCED.js.map} +0 -0
- /package/dist/{chunk-B4TM2HYJ.js.map → chunk-SWO67UWQ.js.map} +0 -0
- /package/dist/{chunk-Z5UJC4Q3.js.map → chunk-Z35E22WS.js.map} +0 -0
|
@@ -4619,7 +4619,7 @@ aside.workspace-agents-status-panel
|
|
|
4619
4619
|
--background-session-sidepanel,
|
|
4620
4620
|
rgb(244 245 247)
|
|
4621
4621
|
);
|
|
4622
|
-
--agent-gui-detail-padding-x:
|
|
4622
|
+
--agent-gui-detail-padding-x: 48px;
|
|
4623
4623
|
width: 100%;
|
|
4624
4624
|
height: 100%;
|
|
4625
4625
|
container: agent-gui-node / inline-size;
|
|
@@ -4678,16 +4678,13 @@ aside.workspace-agents-status-panel
|
|
|
4678
4678
|
transition: none;
|
|
4679
4679
|
}
|
|
4680
4680
|
|
|
4681
|
-
.workbench-window[data-window-header-layout="overlay"]
|
|
4682
|
-
.workbench-window[data-agent-gui-standalone-window="true"] {
|
|
4681
|
+
.workbench-window[data-window-header-layout="overlay"] {
|
|
4683
4682
|
--agent-gui-workbench-header-height: 44px;
|
|
4684
4683
|
|
|
4685
4684
|
grid-template-rows: minmax(0, 1fr);
|
|
4686
4685
|
}
|
|
4687
4686
|
|
|
4688
4687
|
.workbench-window[data-window-header-layout="overlay"]
|
|
4689
|
-
.workbench-window__header,
|
|
4690
|
-
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4691
4688
|
.workbench-window__header {
|
|
4692
4689
|
position: absolute !important;
|
|
4693
4690
|
top: 0 !important;
|
|
@@ -4716,19 +4713,12 @@ aside.workspace-agents-status-panel
|
|
|
4716
4713
|
cursor: grabbing !important;
|
|
4717
4714
|
}
|
|
4718
4715
|
|
|
4719
|
-
.workbench-window[data-
|
|
4716
|
+
.workbench-window[data-window-header-layout="overlay"]
|
|
4720
4717
|
.workbench-window__header {
|
|
4721
4718
|
z-index: calc(var(--z-panel) + 1);
|
|
4722
4719
|
}
|
|
4723
4720
|
|
|
4724
|
-
.workbench-window[data-
|
|
4725
|
-
.agent-gui-workbench-header::after {
|
|
4726
|
-
display: none;
|
|
4727
|
-
}
|
|
4728
|
-
|
|
4729
|
-
.workbench-window[data-window-header-layout="overlay"] .workbench-window__body,
|
|
4730
|
-
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4731
|
-
.workbench-window__body {
|
|
4721
|
+
.workbench-window[data-window-header-layout="overlay"] .workbench-window__body {
|
|
4732
4722
|
grid-row: 1;
|
|
4733
4723
|
overflow: hidden;
|
|
4734
4724
|
}
|
|
@@ -4796,8 +4786,6 @@ aside.workspace-agents-status-panel
|
|
|
4796
4786
|
}
|
|
4797
4787
|
|
|
4798
4788
|
.workbench-window[data-window-header-layout="overlay"]
|
|
4799
|
-
.agent-gui-node__provider-rail-panel,
|
|
4800
|
-
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4801
4789
|
.agent-gui-node__provider-rail-panel {
|
|
4802
4790
|
padding-top: var(--agent-gui-workbench-header-height);
|
|
4803
4791
|
}
|
|
@@ -4807,28 +4795,20 @@ aside.workspace-agents-status-panel
|
|
|
4807
4795
|
toolbar has no such wrapper, so fold the same 2px into its offset to keep the
|
|
4808
4796
|
search field top aligned with the provider tiles. */
|
|
4809
4797
|
.workbench-window[data-window-header-layout="overlay"]
|
|
4810
|
-
.agent-gui-node__rail-toolbar,
|
|
4811
|
-
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4812
4798
|
.agent-gui-node__rail-toolbar {
|
|
4813
4799
|
padding-top: calc(var(--agent-gui-workbench-header-height) + 2px);
|
|
4814
4800
|
}
|
|
4815
4801
|
|
|
4816
4802
|
.workbench-window[data-window-header-layout="overlay"]
|
|
4817
|
-
.agent-gui-node__detail-panel,
|
|
4818
|
-
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4819
4803
|
.agent-gui-node__detail-panel {
|
|
4820
4804
|
position: relative;
|
|
4821
4805
|
}
|
|
4822
4806
|
|
|
4823
|
-
.workbench-window[data-window-header-layout="overlay"] .agent-gui-node__detail
|
|
4824
|
-
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4825
|
-
.agent-gui-node__detail {
|
|
4807
|
+
.workbench-window[data-window-header-layout="overlay"] .agent-gui-node__detail {
|
|
4826
4808
|
padding-top: var(--agent-gui-workbench-header-height);
|
|
4827
4809
|
}
|
|
4828
4810
|
|
|
4829
4811
|
.workbench-window[data-window-header-layout="overlay"]
|
|
4830
|
-
.agent-gui-node__timeline-with-composer,
|
|
4831
|
-
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
4832
4812
|
.agent-gui-node__timeline-with-composer {
|
|
4833
4813
|
padding-top: 20px;
|
|
4834
4814
|
}
|
|
@@ -4890,12 +4870,6 @@ aside.workspace-agents-status-panel
|
|
|
4890
4870
|
--agent-gui-workbench-header-title-max-width: calc(100% - 32px);
|
|
4891
4871
|
--agent-gui-workbench-header-text: var(--text-primary);
|
|
4892
4872
|
--agent-gui-workbench-header-muted: var(--text-secondary);
|
|
4893
|
-
--agent-gui-workbench-header-divider: color-mix(
|
|
4894
|
-
in srgb,
|
|
4895
|
-
var(--text-primary) 4%,
|
|
4896
|
-
transparent
|
|
4897
|
-
);
|
|
4898
|
-
|
|
4899
4873
|
position: relative;
|
|
4900
4874
|
display: grid;
|
|
4901
4875
|
width: 100%;
|
|
@@ -4913,17 +4887,6 @@ aside.workspace-agents-status-panel
|
|
|
4913
4887
|
user-select: none;
|
|
4914
4888
|
}
|
|
4915
4889
|
|
|
4916
|
-
.agent-gui-workbench-header[data-agent-gui-workbench-header-has-session="true"]::after {
|
|
4917
|
-
position: absolute;
|
|
4918
|
-
right: 0;
|
|
4919
|
-
bottom: 0;
|
|
4920
|
-
left: var(--agent-gui-workbench-header-rail-width);
|
|
4921
|
-
height: 1px;
|
|
4922
|
-
background: var(--agent-gui-workbench-header-divider);
|
|
4923
|
-
content: "";
|
|
4924
|
-
pointer-events: none;
|
|
4925
|
-
}
|
|
4926
|
-
|
|
4927
4890
|
.agent-gui-workbench-header:active {
|
|
4928
4891
|
cursor: grabbing;
|
|
4929
4892
|
}
|
|
@@ -4932,10 +4895,6 @@ aside.workspace-agents-status-panel
|
|
|
4932
4895
|
grid-template-columns: minmax(0, 0px) minmax(0, 1fr);
|
|
4933
4896
|
}
|
|
4934
4897
|
|
|
4935
|
-
.agent-gui-workbench-header[data-agent-gui-workbench-header-collapsed="true"]::after {
|
|
4936
|
-
left: 0;
|
|
4937
|
-
}
|
|
4938
|
-
|
|
4939
4898
|
.agent-gui-workbench-header__primary {
|
|
4940
4899
|
display: flex;
|
|
4941
4900
|
box-sizing: border-box;
|
|
@@ -4957,10 +4916,11 @@ aside.workspace-agents-status-panel
|
|
|
4957
4916
|
}
|
|
4958
4917
|
|
|
4959
4918
|
/*
|
|
4960
|
-
*
|
|
4961
|
-
*
|
|
4962
|
-
*
|
|
4963
|
-
* the
|
|
4919
|
+
* Tool-sidebar actions belong to the single Agent window header regardless of
|
|
4920
|
+
* whether that header is owned by the native window or an embedding host.
|
|
4921
|
+
* Collapsing the conversation rail must not pull them into the 720px content
|
|
4922
|
+
* cap. Let the primary row span the host header and keep the same trailing
|
|
4923
|
+
* inset as the expanded detail row.
|
|
4964
4924
|
*
|
|
4965
4925
|
* The tool actions are absolutely positioned against the window's right edge,
|
|
4966
4926
|
* so they no longer occupy space in the flex row. In the collapsed primary row
|
|
@@ -4970,7 +4930,7 @@ aside.workspace-agents-status-panel
|
|
|
4970
4930
|
* trailing padding on the row itself so the title flex-grows and truncates
|
|
4971
4931
|
* before it can reach them, regardless of what precedes it.
|
|
4972
4932
|
*/
|
|
4973
|
-
.agent-gui-workbench-header[data-agent-gui-
|
|
4933
|
+
.agent-gui-workbench-header[data-agent-gui-workbench-header-tool-sidebar="true"][data-agent-gui-workbench-header-collapsed="true"]
|
|
4974
4934
|
.agent-gui-workbench-header__primary {
|
|
4975
4935
|
width: 100%;
|
|
4976
4936
|
padding-inline-end: calc(
|
|
@@ -4979,18 +4939,18 @@ aside.workspace-agents-status-panel
|
|
|
4979
4939
|
);
|
|
4980
4940
|
}
|
|
4981
4941
|
|
|
4982
|
-
.agent-gui-workbench-header[data-agent-gui-
|
|
4942
|
+
.agent-gui-workbench-header[data-agent-gui-workbench-header-tool-sidebar="true"]
|
|
4983
4943
|
.agent-gui-workbench-header__secondary-accessory {
|
|
4984
4944
|
padding-right: 0;
|
|
4985
4945
|
}
|
|
4986
4946
|
|
|
4987
|
-
/* Keep the
|
|
4947
|
+
/* Keep the tool header on the same right edge as its body panel.
|
|
4988
4948
|
The body panel is right-anchored independently of the Agent header's rail
|
|
4989
4949
|
grid; leaving this accessory in the grid makes its left edge drift when the
|
|
4990
4950
|
panel expands to the available width. */
|
|
4991
|
-
.agent-gui-workbench-header[data-agent-gui-
|
|
4951
|
+
.agent-gui-workbench-header[data-agent-gui-workbench-header-tool-sidebar="true"]
|
|
4992
4952
|
.agent-gui-workbench-header__secondary-accessory:has(
|
|
4993
|
-
[data-
|
|
4953
|
+
[data-agent-tool-sidebar-header="true"]
|
|
4994
4954
|
) {
|
|
4995
4955
|
position: absolute;
|
|
4996
4956
|
top: 0;
|
|
@@ -4999,13 +4959,13 @@ aside.workspace-agents-status-panel
|
|
|
4999
4959
|
}
|
|
5000
4960
|
|
|
5001
4961
|
/*
|
|
5002
|
-
*
|
|
5003
|
-
*
|
|
5004
|
-
*
|
|
5005
|
-
*
|
|
5006
|
-
*
|
|
4962
|
+
* The detached-window button pushes the detail controls to the far edge while
|
|
4963
|
+
* the conversation rail is expanded. Once the rail collapses, every primary
|
|
4964
|
+
* control and the session title share one full-width row, so keep that group
|
|
4965
|
+
* anchored immediately after the traffic lights. Secondary tool actions retain
|
|
4966
|
+
* their own right alignment across the full header width.
|
|
5007
4967
|
*/
|
|
5008
|
-
.agent-gui-workbench-header[data-agent-gui-workbench-header-collapsed="true"]
|
|
4968
|
+
.agent-gui-workbench-header[data-agent-gui-workbench-header-collapsed="true"]
|
|
5009
4969
|
.agent-gui-workbench-header__detached-window {
|
|
5010
4970
|
margin-left: 0;
|
|
5011
4971
|
}
|
|
@@ -5321,9 +5281,9 @@ aside.workspace-agents-status-panel
|
|
|
5321
5281
|
pointer-events: auto;
|
|
5322
5282
|
}
|
|
5323
5283
|
|
|
5324
|
-
.workbench-
|
|
5284
|
+
.agent-gui-workbench-header[data-agent-gui-workbench-header-tool-sidebar="true"]
|
|
5325
5285
|
.agent-gui-workbench-header__session-title,
|
|
5326
|
-
.workbench-
|
|
5286
|
+
.agent-gui-workbench-header[data-agent-gui-workbench-header-tool-sidebar="true"]
|
|
5327
5287
|
.agent-gui-workbench-header__detail-title {
|
|
5328
5288
|
box-sizing: border-box;
|
|
5329
5289
|
width: auto;
|
|
@@ -5342,7 +5302,7 @@ aside.workspace-agents-status-panel
|
|
|
5342
5302
|
* max-width here so the reservation is not counted twice, which would strand
|
|
5343
5303
|
* the title far short of the actions.
|
|
5344
5304
|
*/
|
|
5345
|
-
.agent-gui-workbench-header[data-agent-gui-
|
|
5305
|
+
.agent-gui-workbench-header[data-agent-gui-workbench-header-tool-sidebar="true"][data-agent-gui-workbench-header-collapsed="true"]
|
|
5346
5306
|
.agent-gui-workbench-header__session-title {
|
|
5347
5307
|
max-width: 100%;
|
|
5348
5308
|
}
|
|
@@ -5606,8 +5566,6 @@ aside.workspace-agents-status-panel
|
|
|
5606
5566
|
}
|
|
5607
5567
|
|
|
5608
5568
|
.workbench-window[data-window-header-layout="overlay"]
|
|
5609
|
-
.agent-gui-node__provider-rail-panel::after,
|
|
5610
|
-
.workbench-window[data-agent-gui-standalone-window="true"]
|
|
5611
5569
|
.agent-gui-node__provider-rail-panel::after {
|
|
5612
5570
|
top: var(--agent-gui-workbench-header-height);
|
|
5613
5571
|
}
|
|
@@ -5672,7 +5630,9 @@ aside.workspace-agents-status-panel
|
|
|
5672
5630
|
align-items: center;
|
|
5673
5631
|
gap: 10px;
|
|
5674
5632
|
min-width: 0;
|
|
5675
|
-
padding
|
|
5633
|
+
/* Right inset mirrors the conversation list's 4px padding + 8px native
|
|
5634
|
+
scrollbar gutter so the toolbar controls end flush with the row edges. */
|
|
5635
|
+
padding: 2px 12px 16px 12px;
|
|
5676
5636
|
}
|
|
5677
5637
|
|
|
5678
5638
|
.agent-gui-node__project-rail-header {
|
|
@@ -6012,7 +5972,10 @@ aside.workspace-agents-status-panel
|
|
|
6012
5972
|
min-height: 0;
|
|
6013
5973
|
overflow-x: hidden;
|
|
6014
5974
|
overflow-y: auto;
|
|
6015
|
-
|
|
5975
|
+
/* Right inset stays 4px because the always-visible native scrollbar already
|
|
5976
|
+
reserves an 8px gutter, keeping the visual right inset at 12px like the
|
|
5977
|
+
left side. */
|
|
5978
|
+
padding: 0 4px 18px 12px;
|
|
6016
5979
|
}
|
|
6017
5980
|
|
|
6018
5981
|
.agent-gui-node__conversation-section {
|
|
@@ -6976,7 +6939,7 @@ button.agent-gui-node__conversation-section-toggle:hover
|
|
|
6976
6939
|
--agent-message-locator-dot-size: 6px;
|
|
6977
6940
|
--agent-message-locator-hit-size: 36px;
|
|
6978
6941
|
--agent-message-locator-center-offset: 18px;
|
|
6979
|
-
--agent-message-locator-inline-shift:
|
|
6942
|
+
--agent-message-locator-inline-shift: 8px;
|
|
6980
6943
|
--agent-message-locator-scrollbar-gap: 8px;
|
|
6981
6944
|
--agent-message-locator-visible-height: 100vh;
|
|
6982
6945
|
--agent-message-locator-visible-top-offset: 0px;
|
|
@@ -10889,3 +10852,64 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
|
|
|
10889
10852
|
font-size: 11px;
|
|
10890
10853
|
line-height: 1.5;
|
|
10891
10854
|
}
|
|
10855
|
+
|
|
10856
|
+
/* Tutti intensity slider: stars pour out of the handle towards the left end
|
|
10857
|
+
of the track. The stream container is sized from React (track start to the
|
|
10858
|
+
handle's left edge); per-star duration/delay/drift come from CSS vars so a
|
|
10859
|
+
fixed pool can run continuously while intensity changes only toggle
|
|
10860
|
+
visibility. Stacking: the stream sits above the track (z-index 1) and below
|
|
10861
|
+
the handle (the slider thumb rules raise it to z-index 2). */
|
|
10862
|
+
.agent-gui-intensity-star-stream {
|
|
10863
|
+
position: absolute;
|
|
10864
|
+
z-index: 1;
|
|
10865
|
+
top: 50%;
|
|
10866
|
+
left: 0;
|
|
10867
|
+
width: max(0px, var(--agent-gui-star-stream-width, 0px));
|
|
10868
|
+
height: 28px;
|
|
10869
|
+
transform: translateY(calc(-50% - 2px));
|
|
10870
|
+
overflow: hidden;
|
|
10871
|
+
pointer-events: none;
|
|
10872
|
+
}
|
|
10873
|
+
|
|
10874
|
+
.agent-gui-intensity-star-stream__star {
|
|
10875
|
+
position: absolute;
|
|
10876
|
+
left: 100%;
|
|
10877
|
+
opacity: 0;
|
|
10878
|
+
filter: drop-shadow(0 0 3px currentColor) drop-shadow(0 0 6px currentColor);
|
|
10879
|
+
animation: agent-gui-intensity-star-stream-flow
|
|
10880
|
+
var(--agent-gui-star-duration, 2s) linear infinite;
|
|
10881
|
+
animation-delay: var(--agent-gui-star-delay, 0s);
|
|
10882
|
+
}
|
|
10883
|
+
|
|
10884
|
+
@keyframes agent-gui-intensity-star-stream-flow {
|
|
10885
|
+
0% {
|
|
10886
|
+
left: 100%;
|
|
10887
|
+
opacity: 0;
|
|
10888
|
+
transform: translateY(0) scale(0.5);
|
|
10889
|
+
}
|
|
10890
|
+
|
|
10891
|
+
10% {
|
|
10892
|
+
opacity: 0.95;
|
|
10893
|
+
}
|
|
10894
|
+
|
|
10895
|
+
50% {
|
|
10896
|
+
transform: translateY(var(--agent-gui-star-drift, 0px)) scale(1);
|
|
10897
|
+
}
|
|
10898
|
+
|
|
10899
|
+
85% {
|
|
10900
|
+
opacity: 0.95;
|
|
10901
|
+
}
|
|
10902
|
+
|
|
10903
|
+
100% {
|
|
10904
|
+
left: -16px;
|
|
10905
|
+
opacity: 0;
|
|
10906
|
+
transform: translateY(0) scale(0.6);
|
|
10907
|
+
}
|
|
10908
|
+
}
|
|
10909
|
+
|
|
10910
|
+
@media (prefers-reduced-motion: reduce) {
|
|
10911
|
+
.agent-gui-intensity-star-stream__star {
|
|
10912
|
+
animation: none;
|
|
10913
|
+
opacity: 0;
|
|
10914
|
+
}
|
|
10915
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
2
|
-
translateInUiLanguage
|
|
3
|
-
} from "./chunk-P2RIZAK5.js";
|
|
4
1
|
import {
|
|
5
2
|
normalizeAgentTitleText
|
|
6
3
|
} from "./chunk-MIJXEELH.js";
|
|
4
|
+
import {
|
|
5
|
+
translateInUiLanguage
|
|
6
|
+
} from "./chunk-ZXEICU6J.js";
|
|
7
7
|
import {
|
|
8
8
|
resolveAgentGUIProviderCatalogIdentity
|
|
9
9
|
} from "./chunk-O433KXLK.js";
|
|
@@ -335,4 +335,4 @@ export {
|
|
|
335
335
|
resolveAgentGuiWorkbenchHeaderTitle,
|
|
336
336
|
resolveAgentGuiWorkbenchSessionTitle
|
|
337
337
|
};
|
|
338
|
-
//# sourceMappingURL=chunk-
|
|
338
|
+
//# sourceMappingURL=chunk-2QF3RBR4.js.map
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
agentColorfulUrl,
|
|
6
6
|
createProviderIconUrlMap
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-SEHJINGH.js";
|
|
8
8
|
import {
|
|
9
9
|
migratedAgentGUIProviderIdentityCatalog
|
|
10
10
|
} from "./chunk-O433KXLK.js";
|
|
@@ -39,4 +39,4 @@ export {
|
|
|
39
39
|
MANAGED_AGENT_ICON_FALLBACK_URL,
|
|
40
40
|
managedAgentRoundedIconUrl
|
|
41
41
|
};
|
|
42
|
-
//# sourceMappingURL=chunk-
|
|
42
|
+
//# sourceMappingURL=chunk-3X5VDG6T.js.map
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
// agent-gui/agentGuiNode/model/agentGuiRailLayout.ts
|
|
2
|
+
function clamp(value, min, max) {
|
|
3
|
+
return Math.min(max, Math.max(min, value));
|
|
4
|
+
}
|
|
5
|
+
var AGENT_GUI_CONVERSATION_RAIL_DEFAULT_WIDTH_PX = 280;
|
|
6
|
+
var AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX = 248;
|
|
7
|
+
var AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX = 520;
|
|
8
|
+
var AGENT_GUI_DETAIL_MIN_WIDTH_PX = 220;
|
|
9
|
+
var AGENT_GUI_HOME_COMPOSER_MIN_WIDTH_PX = 320;
|
|
10
|
+
var AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX = 10;
|
|
11
|
+
var AGENT_GUI_PROVIDER_RAIL_WIDTH_PX = 52;
|
|
12
|
+
var AGENT_GUI_COLLAPSED_MIN_WIDTH_PX = 460;
|
|
13
|
+
var AGENT_GUI_STANDALONE_MIDDLE_CONTENT_MIN_WIDTH_PX = AGENT_GUI_COLLAPSED_MIN_WIDTH_PX - AGENT_GUI_PROVIDER_RAIL_WIDTH_PX;
|
|
14
|
+
var AGENT_GUI_EXPANDED_MIN_WIDTH_PX = AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX + AGENT_GUI_DETAIL_MIN_WIDTH_PX + AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX;
|
|
15
|
+
var AGENT_GUI_AUTO_COLLAPSE_WIDTH_PX = AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX + AGENT_GUI_HOME_COMPOSER_MIN_WIDTH_PX + AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX + AGENT_GUI_PROVIDER_RAIL_WIDTH_PX;
|
|
16
|
+
var AGENT_GUI_EXPANDED_TARGET_WIDTH_PX = 800;
|
|
17
|
+
function shouldAutoCollapseAgentGUIConversationRail(containerWidthPx, options) {
|
|
18
|
+
if (options?.mode === "preserve-middle-content" && Number.isFinite(containerWidthPx) && containerWidthPx > 0) {
|
|
19
|
+
return containerWidthPx < resolveStandaloneAgentGUIViewportMinimumWidthPx({
|
|
20
|
+
conversationRailCollapsed: false,
|
|
21
|
+
conversationRailWidthPx: options.conversationRailWidthPx
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return Number.isFinite(containerWidthPx) && containerWidthPx > 0 && containerWidthPx <= AGENT_GUI_AUTO_COLLAPSE_WIDTH_PX;
|
|
25
|
+
}
|
|
26
|
+
function resolveAgentGUIConversationRailPresentation(input) {
|
|
27
|
+
const isAutoCollapsed = shouldAutoCollapseAgentGUIConversationRail(
|
|
28
|
+
input.containerWidthPx,
|
|
29
|
+
{
|
|
30
|
+
mode: input.autoCollapseMode,
|
|
31
|
+
conversationRailWidthPx: input.conversationRailWidthPx
|
|
32
|
+
}
|
|
33
|
+
);
|
|
34
|
+
return {
|
|
35
|
+
conversationRailWidthPx: clampAgentGUIConversationRailWidthPx(
|
|
36
|
+
input.conversationRailWidthPx,
|
|
37
|
+
input.containerWidthPx
|
|
38
|
+
),
|
|
39
|
+
isAutoCollapsed,
|
|
40
|
+
isCollapsed: input.conversationRailCollapsed === true || isAutoCollapsed
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
function resolveStandaloneAgentGUIViewportMinimumWidthPx(input) {
|
|
44
|
+
if (input.conversationRailCollapsed === true) {
|
|
45
|
+
return AGENT_GUI_COLLAPSED_MIN_WIDTH_PX;
|
|
46
|
+
}
|
|
47
|
+
return AGENT_GUI_PROVIDER_RAIL_WIDTH_PX + resolvePreferredConversationRailWidthPx(input.conversationRailWidthPx) + AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX + AGENT_GUI_STANDALONE_MIDDLE_CONTENT_MIN_WIDTH_PX;
|
|
48
|
+
}
|
|
49
|
+
function resolveAgentGUIConversationRailMaxWidthPx(containerWidthPx) {
|
|
50
|
+
const safeContainerWidth = Number.isFinite(containerWidthPx) && containerWidthPx > 0 ? containerWidthPx : AGENT_GUI_CONVERSATION_RAIL_DEFAULT_WIDTH_PX + AGENT_GUI_DETAIL_MIN_WIDTH_PX + AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX;
|
|
51
|
+
return Math.max(
|
|
52
|
+
AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,
|
|
53
|
+
Math.min(
|
|
54
|
+
AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX,
|
|
55
|
+
safeContainerWidth - AGENT_GUI_DETAIL_MIN_WIDTH_PX - AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX
|
|
56
|
+
)
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
function clampAgentGUIConversationRailWidthPx(widthPx, containerWidthPx) {
|
|
60
|
+
return clamp(
|
|
61
|
+
resolvePreferredConversationRailWidthPx(widthPx),
|
|
62
|
+
AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,
|
|
63
|
+
resolveAgentGUIConversationRailMaxWidthPx(containerWidthPx)
|
|
64
|
+
);
|
|
65
|
+
}
|
|
66
|
+
function resolvePreferredConversationRailWidthPx(widthPx) {
|
|
67
|
+
const preferredWidthPx = typeof widthPx === "number" && Number.isFinite(widthPx) ? Math.round(widthPx) : AGENT_GUI_CONVERSATION_RAIL_DEFAULT_WIDTH_PX;
|
|
68
|
+
return clamp(
|
|
69
|
+
preferredWidthPx,
|
|
70
|
+
AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,
|
|
71
|
+
AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX
|
|
72
|
+
);
|
|
73
|
+
}
|
|
74
|
+
function resolveNextAgentGUIConversationRailWidthPx(input) {
|
|
75
|
+
const nextWidthPx = clampAgentGUIConversationRailWidthPx(
|
|
76
|
+
input.requestedWidthPx,
|
|
77
|
+
input.containerWidthPx
|
|
78
|
+
);
|
|
79
|
+
if (input.currentWidthPx === nextWidthPx) {
|
|
80
|
+
return input.currentWidthPx;
|
|
81
|
+
}
|
|
82
|
+
if (input.currentWidthPx === null || input.currentWidthPx === void 0) {
|
|
83
|
+
const defaultWidthPx = clampAgentGUIConversationRailWidthPx(
|
|
84
|
+
null,
|
|
85
|
+
input.containerWidthPx
|
|
86
|
+
);
|
|
87
|
+
if (nextWidthPx === defaultWidthPx) {
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
return nextWidthPx;
|
|
92
|
+
}
|
|
93
|
+
function resolveAgentGUIExpandedWindowFrame(input) {
|
|
94
|
+
const desiredRailWidthPx = clampAgentGUIConversationRailWidthPx(
|
|
95
|
+
input.conversationRailWidthPx,
|
|
96
|
+
AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX + AGENT_GUI_DETAIL_MIN_WIDTH_PX + AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX
|
|
97
|
+
);
|
|
98
|
+
const desiredWidthPx = Math.max(
|
|
99
|
+
Math.round(input.width),
|
|
100
|
+
desiredRailWidthPx + AGENT_GUI_DETAIL_MIN_WIDTH_PX + AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX,
|
|
101
|
+
AGENT_GUI_EXPANDED_MIN_WIDTH_PX,
|
|
102
|
+
AGENT_GUI_EXPANDED_TARGET_WIDTH_PX
|
|
103
|
+
);
|
|
104
|
+
const desktopWidthPx = Number.isFinite(input.desktopSize.width) && input.desktopSize.width > 0 ? Math.round(input.desktopSize.width) : desiredWidthPx;
|
|
105
|
+
const nextWidthPx = Math.min(desiredWidthPx, desktopWidthPx);
|
|
106
|
+
const maxX = Math.max(0, desktopWidthPx - nextWidthPx);
|
|
107
|
+
const nextX = clamp(Math.round(input.position.x), 0, maxX);
|
|
108
|
+
return {
|
|
109
|
+
position: {
|
|
110
|
+
x: nextX,
|
|
111
|
+
y: input.position.y
|
|
112
|
+
},
|
|
113
|
+
size: {
|
|
114
|
+
width: nextWidthPx,
|
|
115
|
+
height: input.height
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
export {
|
|
121
|
+
AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,
|
|
122
|
+
AGENT_GUI_DETAIL_MIN_WIDTH_PX,
|
|
123
|
+
AGENT_GUI_PROVIDER_RAIL_WIDTH_PX,
|
|
124
|
+
AGENT_GUI_COLLAPSED_MIN_WIDTH_PX,
|
|
125
|
+
AGENT_GUI_STANDALONE_MIDDLE_CONTENT_MIN_WIDTH_PX,
|
|
126
|
+
AGENT_GUI_EXPANDED_TARGET_WIDTH_PX,
|
|
127
|
+
shouldAutoCollapseAgentGUIConversationRail,
|
|
128
|
+
resolveAgentGUIConversationRailPresentation,
|
|
129
|
+
resolveStandaloneAgentGUIViewportMinimumWidthPx,
|
|
130
|
+
resolveAgentGUIConversationRailMaxWidthPx,
|
|
131
|
+
clampAgentGUIConversationRailWidthPx,
|
|
132
|
+
resolveNextAgentGUIConversationRailWidthPx,
|
|
133
|
+
resolveAgentGUIExpandedWindowFrame
|
|
134
|
+
};
|
|
135
|
+
//# sourceMappingURL=chunk-6GX57XB5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../agent-gui/agentGuiNode/model/agentGuiRailLayout.ts"],"sourcesContent":["function clamp(value: number, min: number, max: number): number {\n return Math.min(max, Math.max(min, value));\n}\n\n// Keep aligned with the issue manager task-list rail dimensions.\nexport const AGENT_GUI_CONVERSATION_RAIL_DEFAULT_WIDTH_PX = 280;\nexport const AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX = 248;\nexport const AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX = 520;\nexport const AGENT_GUI_DETAIL_MIN_WIDTH_PX = 220;\nexport const AGENT_GUI_HOME_COMPOSER_MIN_WIDTH_PX = 320;\nexport const AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX = 10;\nexport const AGENT_GUI_PROVIDER_RAIL_WIDTH_PX = 52;\nexport const AGENT_GUI_COLLAPSED_MIN_WIDTH_PX = 460;\nexport const AGENT_GUI_STANDALONE_MIDDLE_CONTENT_MIN_WIDTH_PX =\n AGENT_GUI_COLLAPSED_MIN_WIDTH_PX - AGENT_GUI_PROVIDER_RAIL_WIDTH_PX;\nexport const AGENT_GUI_EXPANDED_MIN_WIDTH_PX =\n AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX +\n AGENT_GUI_DETAIL_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX;\n// One package-owned responsive threshold applies to every Agent GUI surface:\n// 248px conversation rail + 320px composer + 10px resize handle + 52px\n// provider rail = 630px. Hosts project container width and persisted user\n// preference only; they do not replace this layout policy.\nexport const AGENT_GUI_AUTO_COLLAPSE_WIDTH_PX =\n AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX +\n AGENT_GUI_HOME_COMPOSER_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX +\n AGENT_GUI_PROVIDER_RAIL_WIDTH_PX;\nexport const AGENT_GUI_EXPANDED_TARGET_WIDTH_PX = 800;\n\nexport interface AgentGUIConversationRailPresentation {\n conversationRailWidthPx: number;\n isAutoCollapsed: boolean;\n isCollapsed: boolean;\n}\n\nexport type AgentGUIConversationRailAutoCollapseMode =\n | \"default\"\n | \"preserve-middle-content\";\n\nexport interface AgentGUIExpandedWindowFrameInput {\n position: { x: number; y: number };\n width: number;\n height: number;\n desktopSize: { width: number; height: number };\n conversationRailWidthPx: number | null | undefined;\n}\n\nexport function shouldAutoCollapseAgentGUIConversationRail(\n containerWidthPx: number,\n options?: {\n mode?: AgentGUIConversationRailAutoCollapseMode;\n conversationRailWidthPx?: number | null;\n }\n): boolean {\n if (\n options?.mode === \"preserve-middle-content\" &&\n Number.isFinite(containerWidthPx) &&\n containerWidthPx > 0\n ) {\n return (\n containerWidthPx <\n resolveStandaloneAgentGUIViewportMinimumWidthPx({\n conversationRailCollapsed: false,\n conversationRailWidthPx: options.conversationRailWidthPx\n })\n );\n }\n return (\n Number.isFinite(containerWidthPx) &&\n containerWidthPx > 0 &&\n containerWidthPx <= AGENT_GUI_AUTO_COLLAPSE_WIDTH_PX\n );\n}\n\nexport function resolveAgentGUIConversationRailPresentation(input: {\n autoCollapseMode?: AgentGUIConversationRailAutoCollapseMode;\n containerWidthPx: number;\n conversationRailCollapsed?: boolean | null;\n conversationRailWidthPx?: number | null;\n}): AgentGUIConversationRailPresentation {\n const isAutoCollapsed = shouldAutoCollapseAgentGUIConversationRail(\n input.containerWidthPx,\n {\n mode: input.autoCollapseMode,\n conversationRailWidthPx: input.conversationRailWidthPx\n }\n );\n return {\n conversationRailWidthPx: clampAgentGUIConversationRailWidthPx(\n input.conversationRailWidthPx,\n input.containerWidthPx\n ),\n isAutoCollapsed,\n isCollapsed: input.conversationRailCollapsed === true || isAutoCollapsed\n };\n}\n\nexport function resolveStandaloneAgentGUIViewportMinimumWidthPx(input: {\n conversationRailCollapsed?: boolean | null;\n conversationRailWidthPx?: number | null;\n}): number {\n if (input.conversationRailCollapsed === true) {\n return AGENT_GUI_COLLAPSED_MIN_WIDTH_PX;\n }\n return (\n AGENT_GUI_PROVIDER_RAIL_WIDTH_PX +\n resolvePreferredConversationRailWidthPx(input.conversationRailWidthPx) +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX +\n AGENT_GUI_STANDALONE_MIDDLE_CONTENT_MIN_WIDTH_PX\n );\n}\n\nexport function resolveAgentGUIConversationRailMaxWidthPx(\n containerWidthPx: number\n): number {\n const safeContainerWidth =\n Number.isFinite(containerWidthPx) && containerWidthPx > 0\n ? containerWidthPx\n : AGENT_GUI_CONVERSATION_RAIL_DEFAULT_WIDTH_PX +\n AGENT_GUI_DETAIL_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX;\n\n return Math.max(\n AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,\n Math.min(\n AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX,\n safeContainerWidth -\n AGENT_GUI_DETAIL_MIN_WIDTH_PX -\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX\n )\n );\n}\n\nexport function clampAgentGUIConversationRailWidthPx(\n widthPx: number | null | undefined,\n containerWidthPx: number\n): number {\n return clamp(\n resolvePreferredConversationRailWidthPx(widthPx),\n AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,\n resolveAgentGUIConversationRailMaxWidthPx(containerWidthPx)\n );\n}\n\nfunction resolvePreferredConversationRailWidthPx(\n widthPx: number | null | undefined\n): number {\n const preferredWidthPx =\n typeof widthPx === \"number\" && Number.isFinite(widthPx)\n ? Math.round(widthPx)\n : AGENT_GUI_CONVERSATION_RAIL_DEFAULT_WIDTH_PX;\n return clamp(\n preferredWidthPx,\n AGENT_GUI_CONVERSATION_RAIL_MIN_WIDTH_PX,\n AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX\n );\n}\n\nexport function resolveNextAgentGUIConversationRailWidthPx(input: {\n currentWidthPx: number | null | undefined;\n requestedWidthPx: number;\n containerWidthPx: number;\n}): number | null {\n const nextWidthPx = clampAgentGUIConversationRailWidthPx(\n input.requestedWidthPx,\n input.containerWidthPx\n );\n if (input.currentWidthPx === nextWidthPx) {\n return input.currentWidthPx;\n }\n\n if (input.currentWidthPx === null || input.currentWidthPx === undefined) {\n const defaultWidthPx = clampAgentGUIConversationRailWidthPx(\n null,\n input.containerWidthPx\n );\n if (nextWidthPx === defaultWidthPx) {\n return null;\n }\n }\n\n return nextWidthPx;\n}\n\nexport function resolveAgentGUIExpandedWindowFrame(\n input: AgentGUIExpandedWindowFrameInput\n): {\n position: { x: number; y: number };\n size: { width: number; height: number };\n} {\n const desiredRailWidthPx = clampAgentGUIConversationRailWidthPx(\n input.conversationRailWidthPx,\n AGENT_GUI_CONVERSATION_RAIL_MAX_WIDTH_PX +\n AGENT_GUI_DETAIL_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX\n );\n const desiredWidthPx = Math.max(\n Math.round(input.width),\n desiredRailWidthPx +\n AGENT_GUI_DETAIL_MIN_WIDTH_PX +\n AGENT_GUI_RAIL_RESIZE_HANDLE_WIDTH_PX,\n AGENT_GUI_EXPANDED_MIN_WIDTH_PX,\n AGENT_GUI_EXPANDED_TARGET_WIDTH_PX\n );\n const desktopWidthPx =\n Number.isFinite(input.desktopSize.width) && input.desktopSize.width > 0\n ? Math.round(input.desktopSize.width)\n : desiredWidthPx;\n const nextWidthPx = Math.min(desiredWidthPx, desktopWidthPx);\n const maxX = Math.max(0, desktopWidthPx - nextWidthPx);\n const nextX = clamp(Math.round(input.position.x), 0, maxX);\n\n return {\n position: {\n x: nextX,\n y: input.position.y\n },\n size: {\n width: nextWidthPx,\n height: input.height\n }\n };\n}\n"],"mappings":"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","names":[]}
|