@tutti-os/agent-gui 0.0.43 → 0.0.45

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.
Files changed (49) hide show
  1. package/dist/agent-conversation/index.js +5 -4
  2. package/dist/agent-conversation/index.js.map +1 -1
  3. package/dist/agent-message-center/index.js +17 -11
  4. package/dist/agent-message-center/index.js.map +1 -1
  5. package/dist/app/renderer/agentactivity.css +116 -57
  6. package/dist/{chunk-3PVSIL3H.js → chunk-62QOR3TC.js} +4 -97
  7. package/dist/chunk-62QOR3TC.js.map +1 -0
  8. package/dist/{chunk-5UD2YEBX.js → chunk-AMNXH4DJ.js} +47 -14
  9. package/dist/{chunk-5UD2YEBX.js.map → chunk-AMNXH4DJ.js.map} +1 -1
  10. package/dist/{chunk-XTFRVACA.js → chunk-CZ7PS3DU.js} +22 -7
  11. package/dist/chunk-CZ7PS3DU.js.map +1 -0
  12. package/dist/{chunk-5LVFYNIP.js → chunk-D6IYEVDT.js} +2 -2
  13. package/dist/chunk-EIC7XS3C.js +71 -0
  14. package/dist/chunk-EIC7XS3C.js.map +1 -0
  15. package/dist/chunk-FJG2EH4V.js +317 -0
  16. package/dist/chunk-FJG2EH4V.js.map +1 -0
  17. package/dist/{chunk-42WP3P5C.js → chunk-NZ2BGOJU.js} +2 -2
  18. package/dist/chunk-OL54R6OL.js +99 -0
  19. package/dist/chunk-OL54R6OL.js.map +1 -0
  20. package/dist/{chunk-OLZP2EFK.js → chunk-QT45WUPQ.js} +71 -20
  21. package/dist/chunk-QT45WUPQ.js.map +1 -0
  22. package/dist/{chunk-5U4SXENC.js → chunk-UGV6JTWM.js} +16 -5
  23. package/dist/{chunk-5U4SXENC.js.map → chunk-UGV6JTWM.js.map} +1 -1
  24. package/dist/{chunk-LKOPLDPM.js → chunk-VFQR7AZI.js} +59 -64
  25. package/dist/chunk-VFQR7AZI.js.map +1 -0
  26. package/dist/{chunk-3WZWZHAJ.js → chunk-ZG3WZSMV.js} +2 -2
  27. package/dist/context-mention-palette/index.d.ts +2 -1
  28. package/dist/context-mention-palette/index.js +7 -6
  29. package/dist/i18n/index.d.ts +51 -3
  30. package/dist/i18n/index.js +2 -1
  31. package/dist/index.d.ts +1 -5
  32. package/dist/index.js +1153 -671
  33. package/dist/index.js.map +1 -1
  34. package/dist/uiSettings-BQS9r2eo.d.ts +6 -0
  35. package/dist/workbench/contribution.js +1 -1
  36. package/dist/workbench/index.d.ts +3 -0
  37. package/dist/workbench/index.js +13 -2
  38. package/dist/workbench/sessionTitle.d.ts +28 -0
  39. package/dist/workbench/sessionTitle.js +14 -0
  40. package/dist/workbench/sessionTitle.js.map +1 -0
  41. package/dist/workspace-agent-generated-files.js +3 -2
  42. package/package.json +21 -14
  43. package/dist/chunk-3PVSIL3H.js.map +0 -1
  44. package/dist/chunk-LKOPLDPM.js.map +0 -1
  45. package/dist/chunk-OLZP2EFK.js.map +0 -1
  46. package/dist/chunk-XTFRVACA.js.map +0 -1
  47. /package/dist/{chunk-5LVFYNIP.js.map → chunk-D6IYEVDT.js.map} +0 -0
  48. /package/dist/{chunk-42WP3P5C.js.map → chunk-NZ2BGOJU.js.map} +0 -0
  49. /package/dist/{chunk-3WZWZHAJ.js.map → chunk-ZG3WZSMV.js.map} +0 -0
@@ -101,20 +101,15 @@
101
101
  top: max(20px, calc(var(--cove-titlebar-reserve, 0px) + 10px));
102
102
  right: 20px;
103
103
  inset-inline-end: 20px;
104
- background: color-mix(in srgb, var(--background-panel) 78%, black 22%);
105
- box-shadow:
106
- 0 18px 40px color-mix(in srgb, black 26%, transparent),
107
- 0 0 0 1px color-mix(in srgb, white 12%, transparent);
108
- color: var(--text-primary);
109
104
  }
110
105
 
111
106
  .tsh-zoom-dialog__image-actions {
112
107
  position: fixed;
113
108
  top: max(20px, calc(var(--cove-titlebar-reserve, 0px) + 10px));
114
- right: 72px;
109
+ right: 58px;
115
110
  z-index: 100301;
116
111
  display: flex;
117
- gap: 8px;
112
+ gap: 6px;
118
113
  }
119
114
 
120
115
  .tsh-image-context-menu {
@@ -131,7 +126,6 @@
131
126
  -webkit-app-region: no-drag;
132
127
  }
133
128
 
134
- .tsh-zoom-dialog__image-actions button,
135
129
  .tsh-image-context-menu button {
136
130
  display: flex;
137
131
  align-items: center;
@@ -146,23 +140,17 @@
146
140
  line-height: 20px;
147
141
  }
148
142
 
143
+ .tsh-zoom-dialog__icon-button,
149
144
  .tsh-zoom-dialog__image-actions button {
150
145
  justify-content: center;
151
- width: 40px;
152
- height: 40px;
153
- background: color-mix(in srgb, var(--background-panel) 78%, black 22%);
146
+ width: 32px;
147
+ height: 32px;
148
+ border-radius: 6px;
149
+ background: var(--background-fronted);
154
150
  box-shadow:
155
151
  0 18px 40px color-mix(in srgb, black 26%, transparent),
156
152
  0 0 0 1px color-mix(in srgb, white 12%, transparent);
157
- }
158
-
159
- .tsh-zoom-dialog__image-actions button span {
160
- position: absolute;
161
- width: 1px;
162
- height: 1px;
163
- overflow: hidden;
164
- clip: rect(0 0 0 0);
165
- white-space: nowrap;
153
+ color: var(--text-primary);
166
154
  }
167
155
 
168
156
  .tsh-image-context-menu button {
@@ -170,6 +158,7 @@
170
158
  padding: 7px 10px;
171
159
  }
172
160
 
161
+ .tsh-zoom-dialog__icon-button:hover,
173
162
  .tsh-zoom-dialog__image-actions button:hover,
174
163
  .tsh-image-context-menu button:hover {
175
164
  background: color-mix(in srgb, var(--background-panel) 82%, white 12%);
@@ -3897,9 +3886,15 @@ aside.workspace-agents-status-panel
3897
3886
  --agent-conversation-text: var(--text-primary);
3898
3887
  --agent-conversation-user-text: var(--text-primary);
3899
3888
  --agent-conversation-user-bg: var(--agent-gui-surface-muted);
3900
- --agent-gui-background-1: var(--background-1, rgb(245 245 245));
3901
- --agent-gui-detail-padding-x: 28px;
3902
- --agent-gui-detail-flow-max-width: 1280px;
3889
+ --agent-gui-session-flow-background: var(
3890
+ --background-session-flow,
3891
+ rgb(252 253 255)
3892
+ );
3893
+ --agent-gui-session-sidepanel-background: var(
3894
+ --background-session-sidepanel,
3895
+ rgb(244 245 247)
3896
+ );
3897
+ --agent-gui-detail-padding-x: 32px;
3903
3898
  width: 100%;
3904
3899
  height: 100%;
3905
3900
  container: agent-gui-node / inline-size;
@@ -3908,12 +3903,26 @@ aside.workspace-agents-status-panel
3908
3903
  }
3909
3904
 
3910
3905
  :root[data-theme="dark"] .agent-gui-node__shell {
3911
- --agent-gui-background-1: var(--background-1, rgb(24 24 24));
3906
+ --agent-gui-session-flow-background: var(
3907
+ --background-session-flow,
3908
+ rgb(24 24 24)
3909
+ );
3910
+ --agent-gui-session-sidepanel-background: var(
3911
+ --background-session-sidepanel,
3912
+ rgb(42 42 43)
3913
+ );
3912
3914
  }
3913
3915
 
3914
3916
  @media (prefers-color-scheme: dark) {
3915
3917
  :root:not([data-theme="light"]) .agent-gui-node__shell {
3916
- --agent-gui-background-1: var(--background-1, rgb(24 24 24));
3918
+ --agent-gui-session-flow-background: var(
3919
+ --background-session-flow,
3920
+ rgb(24 24 24)
3921
+ );
3922
+ --agent-gui-session-sidepanel-background: var(
3923
+ --background-session-sidepanel,
3924
+ rgb(42 42 43)
3925
+ );
3917
3926
  }
3918
3927
  }
3919
3928
 
@@ -3934,8 +3943,8 @@ aside.workspace-agents-status-panel
3934
3943
  min-height: 0;
3935
3944
  min-width: 0;
3936
3945
  overflow: hidden;
3937
- background: transparent;
3938
- transition: grid-template-columns 100ms cubic-bezier(0.2, 0, 0, 1);
3946
+ background: var(--agent-gui-session-sidepanel-background);
3947
+ transition: grid-template-columns 180ms cubic-bezier(0.22, 1, 0.36, 1);
3939
3948
  }
3940
3949
 
3941
3950
  .agent-gui-node__layout[data-rail-resizing="true"] {
@@ -4009,7 +4018,7 @@ aside.workspace-agents-status-panel
4009
4018
  --agent-gui-workbench-header-traffic-light-hit-area-size: 20px;
4010
4019
  --agent-gui-workbench-header-traffic-light-gap: 8px;
4011
4020
  --agent-gui-workbench-header-traffic-light-size: 12px;
4012
- --agent-gui-workbench-header-title-max-width: 280px;
4021
+ --agent-gui-workbench-header-title-max-width: calc(100% - 32px);
4013
4022
  --agent-gui-workbench-header-text: var(--text-primary);
4014
4023
  --agent-gui-workbench-header-muted: var(--text-secondary);
4015
4024
 
@@ -4025,6 +4034,7 @@ aside.workspace-agents-status-panel
4025
4034
  color: var(--agent-gui-workbench-header-text);
4026
4035
  cursor: grab;
4027
4036
  pointer-events: auto;
4037
+ transition: grid-template-columns 180ms cubic-bezier(0.22, 1, 0.36, 1);
4028
4038
  user-select: none;
4029
4039
  }
4030
4040
 
@@ -4045,7 +4055,7 @@ aside.workspace-agents-status-panel
4045
4055
  align-items: center;
4046
4056
  gap: var(--agent-gui-workbench-header-primary-gap);
4047
4057
  padding: 0 var(--agent-gui-workbench-header-padding-x);
4048
- background: var(--background-panel);
4058
+ background: var(--agent-gui-session-sidepanel-background);
4049
4059
  pointer-events: auto;
4050
4060
  }
4051
4061
 
@@ -4100,24 +4110,54 @@ aside.workspace-agents-status-panel
4100
4110
  transition: background-color 160ms ease;
4101
4111
  }
4102
4112
 
4103
- .agent-gui-workbench-header__traffic-light:hover,
4104
- .agent-gui-workbench-header__traffic-light:focus-visible {
4113
+ .agent-gui-workbench-header__traffic-light-icon {
4114
+ position: absolute;
4115
+ z-index: 1;
4116
+ inset: 5px;
4117
+ width: 10px;
4118
+ height: 10px;
4119
+ color: color-mix(in srgb, #000 68%, transparent);
4120
+ opacity: 0;
4121
+ pointer-events: none;
4122
+ transition: opacity 120ms ease;
4123
+ }
4124
+
4125
+ .agent-gui-workbench-header__traffic-lights:hover
4126
+ .agent-gui-workbench-header__traffic-light,
4127
+ .agent-gui-workbench-header__traffic-lights:focus-within
4128
+ .agent-gui-workbench-header__traffic-light {
4105
4129
  opacity: 1;
4130
+ }
4131
+
4132
+ .agent-gui-workbench-header__traffic-light:focus-visible {
4106
4133
  outline: none;
4107
4134
  }
4108
4135
 
4109
- .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="close"]:hover::before,
4110
- .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="close"]:focus-visible::before {
4136
+ .agent-gui-workbench-header__traffic-lights:hover
4137
+ .agent-gui-workbench-header__traffic-light-icon,
4138
+ .agent-gui-workbench-header__traffic-lights:focus-within
4139
+ .agent-gui-workbench-header__traffic-light-icon {
4140
+ opacity: 1;
4141
+ }
4142
+
4143
+ .agent-gui-workbench-header__traffic-lights:hover
4144
+ .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="close"]::before,
4145
+ .agent-gui-workbench-header__traffic-lights:focus-within
4146
+ .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="close"]::before {
4111
4147
  background-color: #ff5f57;
4112
4148
  }
4113
4149
 
4114
- .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="minimize"]:hover::before,
4115
- .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="minimize"]:focus-visible::before {
4150
+ .agent-gui-workbench-header__traffic-lights:hover
4151
+ .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="minimize"]::before,
4152
+ .agent-gui-workbench-header__traffic-lights:focus-within
4153
+ .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="minimize"]::before {
4116
4154
  background-color: #ffbd2e;
4117
4155
  }
4118
4156
 
4119
- .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="maximize"]:hover::before,
4120
- .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="maximize"]:focus-visible::before {
4157
+ .agent-gui-workbench-header__traffic-lights:hover
4158
+ .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="maximize"]::before,
4159
+ .agent-gui-workbench-header__traffic-lights:focus-within
4160
+ .agent-gui-workbench-header__traffic-light[data-agent-gui-workbench-traffic-light="maximize"]::before {
4121
4161
  background-color: #28c840;
4122
4162
  }
4123
4163
 
@@ -4249,8 +4289,8 @@ aside.workspace-agents-status-panel
4249
4289
  touch-action: none;
4250
4290
  opacity: 1;
4251
4291
  transition:
4252
- left 100ms cubic-bezier(0.2, 0, 0, 1),
4253
- opacity 80ms ease;
4292
+ left 180ms cubic-bezier(0.22, 1, 0.36, 1),
4293
+ opacity 120ms ease;
4254
4294
  }
4255
4295
 
4256
4296
  .agent-gui-node__rail-resize-handle[data-resizing="true"] {
@@ -4291,7 +4331,7 @@ aside.workspace-agents-status-panel
4291
4331
  flex-direction: column;
4292
4332
  overflow: hidden;
4293
4333
  border-radius: 16px;
4294
- background: var(--agent-gui-background-1);
4334
+ background: var(--agent-gui-session-flow-background);
4295
4335
  }
4296
4336
 
4297
4337
  .agent-gui-node__detail-panel > .agent-gui-node__detail {
@@ -4307,15 +4347,16 @@ aside.workspace-agents-status-panel
4307
4347
  height: 100%;
4308
4348
  min-width: 0;
4309
4349
  min-height: 0;
4310
- background: transparent;
4350
+ background: var(--agent-gui-session-sidepanel-background);
4311
4351
  box-shadow: none;
4312
4352
  opacity: 1;
4313
4353
  }
4314
4354
 
4315
4355
  .agent-gui-node__rail > * {
4316
4356
  transition:
4317
- opacity 80ms ease,
4318
- filter 80ms ease;
4357
+ opacity 120ms ease,
4358
+ filter 120ms ease;
4359
+ transition-delay: 40ms;
4319
4360
  }
4320
4361
 
4321
4362
  .agent-gui-node__rail::after {
@@ -4324,9 +4365,13 @@ aside.workspace-agents-status-panel
4324
4365
  position: absolute;
4325
4366
  inset: 0;
4326
4367
  z-index: 1;
4327
- background: color-mix(in srgb, var(--node-surface) 88%, transparent);
4368
+ background: color-mix(
4369
+ in srgb,
4370
+ var(--agent-gui-session-sidepanel-background) 88%,
4371
+ transparent
4372
+ );
4328
4373
  opacity: 0;
4329
- transition: opacity 80ms ease;
4374
+ transition: opacity 120ms ease;
4330
4375
  }
4331
4376
 
4332
4377
  .agent-gui-node__rail-panel--collapsed .agent-gui-node__rail {
@@ -4346,6 +4391,7 @@ aside.workspace-agents-status-panel
4346
4391
 
4347
4392
  @media (prefers-reduced-motion: reduce) {
4348
4393
  .agent-gui-node__layout,
4394
+ .agent-gui-workbench-header,
4349
4395
  .agent-gui-node__rail-resize-handle,
4350
4396
  .agent-gui-node__rail > *,
4351
4397
  .agent-gui-node__rail::after {
@@ -5553,6 +5599,9 @@ button.agent-gui-node__conversation-section-toggle:hover
5553
5599
  scroll-padding-bottom: calc(
5554
5600
  120px + var(--agent-gui-bottom-dock-safe-area, 0px)
5555
5601
  );
5602
+ }
5603
+
5604
+ .agent-gui-node__timeline-with-composer.agent-gui-node__timeline--scrolled-from-top {
5556
5605
  -webkit-mask-image: linear-gradient(
5557
5606
  180deg,
5558
5607
  transparent 0,
@@ -5670,22 +5719,29 @@ button.agent-gui-node__conversation-section-toggle:hover
5670
5719
  gap: 0;
5671
5720
  margin-right: auto;
5672
5721
  margin-left: auto;
5673
- width: min(
5674
- 100%,
5675
- calc(
5676
- var(--agent-gui-detail-flow-max-width) +
5677
- var(--agent-gui-detail-padding-x) + var(--agent-gui-detail-padding-x)
5678
- )
5679
- );
5722
+ width: 100%;
5680
5723
  margin-top: auto;
5681
5724
  padding-top: 0;
5682
5725
  background: transparent;
5683
5726
  border-top: 0;
5727
+ pointer-events: none;
5684
5728
  }
5685
5729
 
5686
5730
  .agent-gui-node__bottom-dock > .agent-gui-node__composer {
5687
5731
  padding-right: 12px;
5688
5732
  padding-left: 12px;
5733
+ pointer-events: none;
5734
+ }
5735
+
5736
+ .agent-gui-node__bottom-dock > .agent-gui-chrome__session-chrome,
5737
+ .agent-gui-node__bottom-dock-prompt,
5738
+ .agent-gui-node__bottom-dock
5739
+ > .agent-gui-node__composer
5740
+ .agent-gui-node__composer-floating-prompt,
5741
+ .agent-gui-node__bottom-dock
5742
+ > .agent-gui-node__composer
5743
+ .agent-gui-node__composer-input-shell {
5744
+ pointer-events: auto;
5689
5745
  }
5690
5746
 
5691
5747
  .agent-gui-node__bottom-dock-prompt {
@@ -5772,7 +5828,9 @@ button.agent-gui-node__conversation-section-toggle:hover
5772
5828
 
5773
5829
  .agent-gui-node__detail-header-title-group {
5774
5830
  display: flex;
5831
+ flex: 1 1 auto;
5775
5832
  min-width: 0;
5833
+ max-width: 100%;
5776
5834
  align-items: center;
5777
5835
  gap: 6px;
5778
5836
  }
@@ -5825,7 +5883,7 @@ button.agent-gui-node__conversation-section-toggle:hover
5825
5883
 
5826
5884
  .agent-gui-node__provider-setup-notice {
5827
5885
  position: absolute;
5828
- top: 8px;
5886
+ top: 56px;
5829
5887
  left: 50%;
5830
5888
  transform: translateX(-50%);
5831
5889
  z-index: 2;
@@ -5841,7 +5899,7 @@ button.agent-gui-node__conversation-section-toggle:hover
5841
5899
  }
5842
5900
 
5843
5901
  .agent-gui-node__detail-header + .agent-gui-node__provider-setup-notice {
5844
- top: calc(64px + 4px);
5902
+ top: calc(64px + 16px);
5845
5903
  }
5846
5904
 
5847
5905
  .agent-gui-node__provider-setup-notice-action {
@@ -5854,6 +5912,7 @@ button.agent-gui-node__conversation-section-toggle:hover
5854
5912
  font: inherit;
5855
5913
  text-decoration: underline;
5856
5914
  cursor: pointer;
5915
+ -webkit-app-region: no-drag;
5857
5916
  }
5858
5917
 
5859
5918
  .agent-gui-node__layout [data-slot="status-dot"],
@@ -6150,7 +6209,7 @@ button.agent-gui-node__conversation-section-toggle:hover
6150
6209
  align-items: center;
6151
6210
  overflow: hidden;
6152
6211
  padding: 0 12px;
6153
- border: 1px solid var(--agent-gui-border-subtle);
6212
+ border: 1px solid var(--line-2);
6154
6213
  border-radius: 10px;
6155
6214
  background: var(--agent-gui-surface-raised);
6156
6215
  box-shadow: 0 8px 24px rgb(0 0 0 / 4%);
@@ -6164,7 +6223,7 @@ button.agent-gui-node__conversation-section-toggle:hover
6164
6223
  .agent-gui-node__composer-prompt-input-area:focus-within,
6165
6224
  .agent-gui-node__composer[data-layout="dock"]
6166
6225
  .agent-gui-node__composer-prompt-input-area:hover {
6167
- border-color: var(--agent-gui-border-subtle);
6226
+ border-color: var(--line-2);
6168
6227
  box-shadow: 0 8px 24px rgb(0 0 0 / 6%);
6169
6228
  }
6170
6229
 
@@ -6174,6 +6233,7 @@ button.agent-gui-node__conversation-section-toggle:hover
6174
6233
  minmax(0, var(--agent-gui-composer-attachment-height, 0px))
6175
6234
  minmax(40px, 1fr);
6176
6235
  align-items: stretch;
6236
+ padding: 12px;
6177
6237
  }
6178
6238
 
6179
6239
  .agent-gui-node__composer[data-layout="dock"]
@@ -7494,7 +7554,6 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
7494
7554
  width: 48px;
7495
7555
  height: 48px;
7496
7556
  object-fit: contain;
7497
- border-radius: 14px;
7498
7557
  animation: agent-gui-empty-hero-enter 260ms cubic-bezier(0.16, 1, 0.3, 1) 40ms
7499
7558
  both;
7500
7559
  }
@@ -7,20 +7,17 @@ import {
7
7
  AgentGUIConversation_styles_default,
8
8
  MessageSquareMoreIcon,
9
9
  extractAgentMcpToolTarget
10
- } from "./chunk-OLZP2EFK.js";
10
+ } from "./chunk-QT45WUPQ.js";
11
11
  import {
12
12
  Spinner
13
- } from "./chunk-42WP3P5C.js";
13
+ } from "./chunk-NZ2BGOJU.js";
14
14
  import {
15
15
  getOptionalAgentHostApi,
16
16
  useOptionalAgentHostApi
17
17
  } from "./chunk-TXXWUG2J.js";
18
- import {
19
- normalizeAgentTitleText
20
- } from "./chunk-GCBDIQDX.js";
21
18
  import {
22
19
  translate
23
- } from "./chunk-LKOPLDPM.js";
20
+ } from "./chunk-EIC7XS3C.js";
24
21
 
25
22
  // shared/agentConversation/approvalOptionPresentation.ts
26
23
  function approvalOptionDisplayLabel(option, intent = {}) {
@@ -1117,100 +1114,10 @@ function interactiveOptionLabel(label, description) {
1117
1114
  return trimmedDescription ? `${label} ${trimmedDescription}` : label;
1118
1115
  }
1119
1116
 
1120
- // shared/utils/agentSessionMentionText.ts
1121
- import {
1122
- isRichTextMentionHref,
1123
- parseRichTextMentionHref
1124
- } from "@tutti-os/ui-rich-text/core";
1125
- var MARKDOWN_LINK_PATTERN = /\[((?:\\.|[^\]\\])*)\]\(([^)\s]+)\)/g;
1126
- var MARKDOWN_LABEL_ESCAPE_PATTERN = /\\([\\[\]()])/g;
1127
- var SESSION_MENTION_DISPLAY_PREFIX_BY_LANGUAGE = {
1128
- "zh-CN": "@\u4F1A\u8BDD \xB7 ",
1129
- en: "@session \xB7 "
1130
- };
1131
- var PLAIN_SESSION_AGENT_LABELS = [
1132
- "Claude Code",
1133
- "Gemini CLI",
1134
- "Hermes Agent",
1135
- "OpenClaw",
1136
- "Nexight",
1137
- "Gemini",
1138
- "Hermes",
1139
- "Codex"
1140
- ];
1141
- function formatAgentSessionMentionText(value, options = {}) {
1142
- const trimmed = value?.trim() ?? "";
1143
- if (!trimmed) {
1144
- return "";
1145
- }
1146
- const sessionMentionDisplayPrefix = sessionMentionDisplayPrefixForLanguage(
1147
- options.language
1148
- );
1149
- const withSessionMentionsNormalized = trimmed.replace(
1150
- MARKDOWN_LINK_PATTERN,
1151
- (fullMatch, rawLabel, href) => {
1152
- const label = unescapeMarkdownLabel(rawLabel);
1153
- const mention = parseRichTextMentionHref(href, label);
1154
- if (!mention) {
1155
- return isRichTextMentionHref(href) ? label : fullMatch;
1156
- }
1157
- const providerId = mention.providerId.trim().toLowerCase();
1158
- const displayLabel = label || mention.label;
1159
- if (providerId === "agent-session") {
1160
- return formatSessionLabel(displayLabel, sessionMentionDisplayPrefix);
1161
- }
1162
- if (providerId === "workspace-issue") {
1163
- return formatIssueLabel(displayLabel);
1164
- }
1165
- return displayLabel;
1166
- }
1167
- );
1168
- const normalized = normalizeAgentTitleText(withSessionMentionsNormalized);
1169
- if (isPlainSessionMentionText(normalized, sessionMentionDisplayPrefix)) {
1170
- return formatSessionLabel(normalized, sessionMentionDisplayPrefix);
1171
- }
1172
- return normalized;
1173
- }
1174
- function isPlainSessionMentionText(value, sessionMentionDisplayPrefix) {
1175
- const trimmed = value.trim();
1176
- if (!trimmed.startsWith("@") || trimmed.startsWith(sessionMentionDisplayPrefix)) {
1177
- return false;
1178
- }
1179
- return PLAIN_SESSION_AGENT_LABELS.some((agentLabel) => {
1180
- const ampersandSeparator = ` & ${agentLabel}`;
1181
- const ampersandIndex = trimmed.indexOf(ampersandSeparator);
1182
- if (ampersandIndex > 1) {
1183
- const trailing = trimmed.slice(
1184
- ampersandIndex + ampersandSeparator.length
1185
- );
1186
- if (trailing === "" || trailing.startsWith(" ")) {
1187
- return true;
1188
- }
1189
- }
1190
- const dottedSeparator = ` \xB7 ${agentLabel} \xB7 `;
1191
- return trimmed.indexOf(dottedSeparator) > 1;
1192
- });
1193
- }
1194
- function sessionMentionDisplayPrefixForLanguage(language) {
1195
- return SESSION_MENTION_DISPLAY_PREFIX_BY_LANGUAGE[language ?? "en"];
1196
- }
1197
- function formatSessionLabel(label, sessionMentionDisplayPrefix) {
1198
- const normalizedLabel = label.trim().replace(/^@+/, "").trim();
1199
- return normalizedLabel ? `${sessionMentionDisplayPrefix}${normalizedLabel}` : label.trim();
1200
- }
1201
- function formatIssueLabel(label) {
1202
- const normalizedLabel = label.trim().replace(/^@+/, "").trim();
1203
- return normalizedLabel ? `@Task \xB7 ${normalizedLabel}` : label.trim();
1204
- }
1205
- function unescapeMarkdownLabel(label) {
1206
- return label.replace(MARKDOWN_LABEL_ESCAPE_PATTERN, "$1");
1207
- }
1208
-
1209
1117
  export {
1210
- formatAgentSessionMentionText,
1211
1118
  approvalOptionDisplayLabel,
1212
1119
  getPromptToolDetails,
1213
1120
  isPromptRequestIdTitle,
1214
1121
  AgentInteractivePromptSurface
1215
1122
  };
1216
- //# sourceMappingURL=chunk-3PVSIL3H.js.map
1123
+ //# sourceMappingURL=chunk-62QOR3TC.js.map