@tutti-os/agent-gui 0.0.106 → 0.0.107

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.
@@ -6,7 +6,7 @@ import {
6
6
  projectAgentConversationVM,
7
7
  reconcileProjectedAgentConversationVM,
8
8
  useProjectedAgentConversation
9
- } from "../chunk-IR2CL2X2.js";
9
+ } from "../chunk-F7Q7QK42.js";
10
10
  import "../chunk-UFIEUC3Y.js";
11
11
  import "../chunk-7BXWPI4F.js";
12
12
  import "../chunk-FGLQZ6I4.js";
package/dist/agent-gui.js CHANGED
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  AgentGUI
3
- } from "./chunk-4HSLSSPJ.js";
3
+ } from "./chunk-ZWY32ZKZ.js";
4
4
  import "./chunk-ZSJBCZUH.js";
5
5
  import "./chunk-V5ROOS2O.js";
6
6
  import "./chunk-4YVKAPKW.js";
7
7
  import "./chunk-QY22OBJS.js";
8
8
  import "./chunk-L3GMMGRS.js";
9
9
  import "./chunk-UHBCM6RO.js";
10
- import "./chunk-IR2CL2X2.js";
10
+ import "./chunk-F7Q7QK42.js";
11
11
  import "./chunk-UFIEUC3Y.js";
12
12
  import "./chunk-7BXWPI4F.js";
13
13
  import "./chunk-P3CVAWGJ.js";
@@ -7553,10 +7553,14 @@ button.agent-gui-node__conversation-section-toggle:hover
7553
7553
  background: var(--agent-gui-accent-bg);
7554
7554
  }
7555
7555
 
7556
+ /* In dock layout a growing draft overhangs upward past the composer's top
7557
+ edge (the dock only reserves the collapsed input height in flow), so the
7558
+ floating panels anchored at bottom: 100% must be lifted by that overhang
7559
+ (--agent-gui-composer-input-overflow) or the grown input covers them. */
7556
7560
  .agent-gui-node__composer-floating-prompt {
7557
7561
  position: absolute;
7558
7562
  right: 12px;
7559
- bottom: calc(100% + 8px);
7563
+ bottom: calc(100% + 8px + var(--agent-gui-composer-input-overflow, 0px));
7560
7564
  left: 12px;
7561
7565
  z-index: 5;
7562
7566
  }
@@ -7564,7 +7568,7 @@ button.agent-gui-node__conversation-section-toggle:hover
7564
7568
  .agent-gui-node__composer-floating-prompt--queued {
7565
7569
  z-index: 1;
7566
7570
  right: 24px;
7567
- bottom: 100%;
7571
+ bottom: calc(100% + var(--agent-gui-composer-input-overflow, 0px));
7568
7572
  left: 24px;
7569
7573
  }
7570
7574
 
@@ -7691,7 +7695,9 @@ button.agent-gui-node__conversation-section-toggle:hover
7691
7695
  }
7692
7696
 
7693
7697
  .agent-gui-node__composer[data-layout="dock"]
7694
- .agent-gui-node__composer-send-button {
7698
+ .agent-gui-node__composer-send-button,
7699
+ .agent-gui-node__composer[data-layout="dock"]
7700
+ .agent-gui-node__composer-stop-button {
7695
7701
  align-self: end;
7696
7702
  }
7697
7703
 
@@ -8257,9 +8263,39 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
8257
8263
  white-space: nowrap;
8258
8264
  }
8259
8265
 
8260
- .agent-gui-node__composer-queued-prompt-markdown p {
8266
+ /* Queued rows are single-line previews. Flatten every markdown block
8267
+ (lists, code blocks, quotes, headings) to plain inline text — including
8268
+ their box styling from the markdown renderer — so the row's nowrap +
8269
+ overflow: hidden + "…" overlay can truncate instead of the blocks
8270
+ stacking extra lines. Scoped under the text wrapper to outrank the
8271
+ renderer's own [&_ol]/[&_pre]-style utilities. */
8272
+ .agent-gui-node__composer-queued-prompt-text
8273
+ .agent-gui-node__composer-queued-prompt-markdown
8274
+ :is(p, ul, ol, li, blockquote, pre, h1, h2, h3, h4, h5, h6) {
8261
8275
  display: inline;
8262
8276
  margin: 0;
8277
+ padding: 0;
8278
+ border: 0;
8279
+ background: transparent;
8280
+ font-size: inherit;
8281
+ font-weight: inherit;
8282
+ line-height: inherit;
8283
+ white-space: nowrap;
8284
+ }
8285
+
8286
+ .agent-gui-node__composer-queued-prompt-text
8287
+ .agent-gui-node__composer-queued-prompt-markdown
8288
+ pre
8289
+ code {
8290
+ white-space: nowrap;
8291
+ }
8292
+
8293
+ /* Media, tables, rules, and explicit line breaks cannot collapse into one
8294
+ text line — drop them from the preview entirely. */
8295
+ .agent-gui-node__composer-queued-prompt-text
8296
+ .agent-gui-node__composer-queued-prompt-markdown
8297
+ :is(img, video, table, hr, br, input) {
8298
+ display: none;
8263
8299
  }
8264
8300
 
8265
8301
  .agent-gui-node__composer-queued-prompt-markdown
@@ -8810,6 +8846,12 @@ html[data-theme="light"] [data-message-center-item-id].agent-gui-edge-glow {
8810
8846
 
8811
8847
  .agent-gui-node__composer[data-layout="dock"] .agent-gui-node__composer-footer {
8812
8848
  position: relative;
8849
+ /* The base rule's width: 100% keeps the parent's content width, so the
8850
+ negative margins only shift the row left instead of widening it: the
8851
+ right edge falls 24px short of the composer edge and strands the model
8852
+ dropdown far from the send button above. width: auto lets
8853
+ justify-self: stretch + the negative margins span the full row. */
8854
+ width: auto;
8813
8855
  margin: 0 -12px -12px;
8814
8856
  padding: 0 14px 12px;
8815
8857
  background: var(--agent-gui-session-flow-background);
@@ -5986,7 +5986,7 @@ Button.displayName = "Button";
5986
5986
 
5987
5987
  // shared/agentConversation/components/AgentVisibleErrorMessage.tsx
5988
5988
  import { jsx as jsx6, jsxs as jsxs4 } from "react/jsx-runtime";
5989
- var PLAN_LIMIT_WARNING_CLASS_NAME = "border-[color-mix(in_srgb,var(--state-warning)_14%,transparent)] bg-[color-mix(in_srgb,var(--background-fronted)_100%,var(--state-warning)_6%)]";
5989
+ var ERROR_BANNER_CLASS_NAME = "border-[var(--on-danger-hover)] bg-[var(--on-danger)] text-[var(--state-danger)]";
5990
5990
  function recoverVisibleErrorFromFailedMessage(message, provider) {
5991
5991
  const code = classifyFailedAgentMessage(message.body);
5992
5992
  if (!code) {
@@ -6020,13 +6020,12 @@ function AgentVisibleErrorMessage({
6020
6020
  const externalUrl = presentation?.externalUrl ?? null;
6021
6021
  const hint = visibleErrorHint(message);
6022
6022
  const isPlanOrQuotaLimit = error?.code === "quota_or_rate_limit";
6023
- const toneClassName = isPlanOrQuotaLimit ? PLAN_LIMIT_WARNING_CLASS_NAME : "border-[var(--on-danger-hover)] bg-[var(--on-danger)] text-[var(--state-danger)]";
6024
6023
  const displayHeadline = isPlanOrQuotaLimit && isProviderPlanLimitMessage(detail) ? detail : headline;
6025
6024
  return /* @__PURE__ */ jsx6(
6026
6025
  "section",
6027
6026
  {
6028
6027
  role: isPlanOrQuotaLimit ? "status" : "alert",
6029
- className: `box-border w-full min-w-0 rounded-[8px] border p-3 text-[13px] leading-5 text-[var(--text-primary)] ${toneClassName}`,
6028
+ className: `box-border w-full min-w-0 rounded-[8px] border p-3 text-[13px] leading-5 text-[var(--text-primary)] ${ERROR_BANNER_CLASS_NAME}`,
6030
6029
  children: /* @__PURE__ */ jsxs4("div", { className: "flex min-w-0 items-start gap-3", children: [
6031
6030
  /* @__PURE__ */ jsxs4("div", { className: "min-w-0 flex-1", children: [
6032
6031
  /* @__PURE__ */ jsx6("div", { className: "font-medium text-[var(--text-primary)]", children: displayHeadline }),
@@ -6937,8 +6936,7 @@ function imageSourceUrl(image) {
6937
6936
  import { jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
6938
6937
  var MESSAGE_COPY_FEEDBACK_MS = 1400;
6939
6938
  var TRANSPORT_RETRY_PROGRESS_PATTERN = /\b(reconnect(?:ing)?(?:\s*(?:\.\.\.|…|[.。]+|:|-))?\s*\(?\d+\s*\/\s*\d+\)?)/i;
6940
- var SYSTEM_NOTICE_WARNING_CLASS_NAME = "border-[color-mix(in_srgb,var(--state-warning)_14%,transparent)] bg-[color-mix(in_srgb,var(--background-fronted)_100%,var(--state-warning)_6%)]";
6941
- var SYSTEM_NOTICE_ERROR_CLASS_NAME = "border-[var(--on-danger-hover)] bg-[var(--on-danger)]";
6939
+ var SYSTEM_NOTICE_CLASS_NAME = "border-[var(--on-danger-hover)] bg-[var(--on-danger)]";
6942
6940
  function AgentMessageBlock({
6943
6941
  workspaceRoot,
6944
6942
  basePath,
@@ -7205,12 +7203,11 @@ function AgentSystemNoticeMessage({
7205
7203
  );
7206
7204
  }
7207
7205
  const isStatusNotice = systemNoticeIsStatus(message);
7208
- const noticeToneClassName = systemNoticeToneClassName(message);
7209
7206
  return /* @__PURE__ */ jsx14(
7210
7207
  "section",
7211
7208
  {
7212
7209
  role: isStatusNotice ? "status" : void 0,
7213
- className: `box-border w-full min-w-0 rounded-[8px] border p-3 text-[13px] leading-5 text-[var(--text-primary)] ${noticeToneClassName}`,
7210
+ className: `box-border w-full min-w-0 rounded-[8px] border p-3 text-[13px] leading-5 text-[var(--text-primary)] ${SYSTEM_NOTICE_CLASS_NAME}`,
7214
7211
  children: /* @__PURE__ */ jsxs9("div", { className: "min-w-0", children: [
7215
7212
  /* @__PURE__ */ jsx14("div", { className: "font-medium text-[var(--text-primary)]", children: title }),
7216
7213
  detail ? /* @__PURE__ */ jsx14(AgentMessageDetailsDisclosure, { detail, className: "mt-1" }) : null
@@ -7218,16 +7215,6 @@ function AgentSystemNoticeMessage({
7218
7215
  }
7219
7216
  );
7220
7217
  }
7221
- function systemNoticeToneClassName(message) {
7222
- const notice = message.systemNotice;
7223
- if (notice?.severity === "error" || notice?.noticeKind === "transport_fallback" || isTransportFallbackNotice(message)) {
7224
- return SYSTEM_NOTICE_ERROR_CLASS_NAME;
7225
- }
7226
- if (notice?.severity === "warning") {
7227
- return SYSTEM_NOTICE_WARNING_CLASS_NAME;
7228
- }
7229
- return SYSTEM_NOTICE_WARNING_CLASS_NAME;
7230
- }
7231
7218
  function systemNoticeIsStatus(message) {
7232
7219
  const notice = message.systemNotice;
7233
7220
  return notice?.severity === "warning" || notice?.severity === "error" || notice?.noticeKind === "transport_fallback" || isTransportFallbackNotice(message);
@@ -14296,4 +14283,4 @@ export {
14296
14283
  AgentConversationFlow,
14297
14284
  useProjectedAgentConversation
14298
14285
  };
14299
- //# sourceMappingURL=chunk-IR2CL2X2.js.map
14286
+ //# sourceMappingURL=chunk-F7Q7QK42.js.map