@octaviaflow/core 3.1.0-beta.118 → 3.1.0-beta.119

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.
@@ -4,6 +4,8 @@ import { type ChatFeedbackRating } from "../ChatFeedback/ChatFeedback";
4
4
  import { type ChatInputAnswer, type ChatInputField, type ChatInputValues } from "../ChatInputRequest/ChatInputRequest";
5
5
  import { type ChatSource } from "../ChatSources/ChatSources";
6
6
  import { type ChatToolCall } from "../ChatToolTrace/ChatToolTrace";
7
+ /** How the conversation is laid out: boxed replies (default) or the dock's slim, flat look. */
8
+ export type AssistantLayout = "comfortable" | "compact";
7
9
  /** A card the assistant shows with a reply (gateway §3.3, DEV-561 shapes). */
8
10
  export type AssistantBlock = {
9
11
  type: "doc";
@@ -77,6 +79,8 @@ export interface AssistantConversationProps extends Omit<ComponentPropsWithoutRe
77
79
  aura?: AssistantAuraIntensity;
78
80
  /** Hide the header (a surface that draws its own). */
79
81
  hideHeader?: boolean;
82
+ /** `compact`: a slim header and flat replies (the dock). Default `comfortable`. */
83
+ layout?: AssistantLayout;
80
84
  /**
81
85
  * Overrides the state worked out from the conversation (`assistantStateOf`),
82
86
  * e.g. `offline`, or `done` after an action the caller ran.
@@ -108,5 +112,5 @@ export declare function AssistantHeaderButton({ label, children, pressed, classN
108
112
  label: string;
109
113
  pressed?: boolean;
110
114
  }): import("react/jsx-runtime").JSX.Element;
111
- export declare function AssistantConversation({ name, subtitle, avatar, actions, context, aura, hideHeader, state: stateProp, greeting, suggestions, messages, replacement, busy, onSend, onStop, onRate, onAnswer, onSkipAsk, placeholder, maxLength, composerDisabled, error, notice, nameId, className, ...rest }: AssistantConversationProps): import("react/jsx-runtime").JSX.Element;
115
+ export declare function AssistantConversation({ name, subtitle, avatar, actions, context, aura, hideHeader, layout, state: stateProp, greeting, suggestions, messages, replacement, busy, onSend, onStop, onRate, onAnswer, onSkipAsk, placeholder, maxLength, composerDisabled, error, notice, nameId, className, ...rest }: AssistantConversationProps): import("react/jsx-runtime").JSX.Element;
112
116
  //# sourceMappingURL=AssistantConversation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantConversation.d.ts","sourceRoot":"","sources":["../../../src/components/AssistantConversation/AssistantConversation.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AssistantConversation.d.ts","sourceRoot":"","sources":["../../../src/components/AssistantConversation/AssistantConversation.tsx"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ export declare const WRITING: AssistantMessage[];
8
8
  export declare const ASK: AssistantMessage[];
9
9
  /** The in-app copilot: tool steps, then the answer. */
10
10
  export declare const COPILOT: AssistantMessage[];
11
+ /** An in-app docs answer (DEV-578): one docs search as a step, a list, sources. */
12
+ export declare const DOCS_ANSWER: AssistantMessage[];
11
13
  /** Words of a fake reply, for interactive stories. */
12
14
  export declare const STREAM_WORDS: string[];
13
15
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"assistant.fixtures.d.ts","sourceRoot":"","sources":["../../../src/components/AssistantConversation/assistant.fixtures.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,eAAO,MAAM,QAAQ,yDAAoD,CAAC;AAC1E,eAAO,MAAM,WAAW,UAIvB,CAAC;AACF,eAAO,MAAM,MAAM,yCAIlB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,gBAAgB,EA+BpC,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,gBAAgB,EAGvC,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,gBAAgB,EAQrC,CAAC;AAEF,eAAO,MAAM,GAAG,EAAE,gBAAgB,EAyBjC,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,OAAO,EAAE,gBAAgB,EAwBrC,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,YAAY,UAGtB,CAAC;AAEJ;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,GAAE,gBAAgB,EAAO,EAChC,EAAE,KAAa,EAAE,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO;;;iBA8CvB,MAAM;;;eA+Db,MAAM,UAAU,IAAI,GAAG,MAAM,GAAG,IAAI;EAGlD"}
1
+ {"version":3,"file":"assistant.fixtures.d.ts","sourceRoot":"","sources":["../../../src/components/AssistantConversation/assistant.fixtures.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,eAAO,MAAM,QAAQ,yDAAoD,CAAC;AAC1E,eAAO,MAAM,WAAW,UAIvB,CAAC;AACF,eAAO,MAAM,MAAM,yCAIlB,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,gBAAgB,EA+BpC,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,gBAAgB,EAGvC,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,gBAAgB,EAQrC,CAAC;AAEF,eAAO,MAAM,GAAG,EAAE,gBAAgB,EAyBjC,CAAC;AAEF,uDAAuD;AACvD,eAAO,MAAM,OAAO,EAAE,gBAAgB,EAwBrC,CAAC;AAEF,mFAAmF;AACnF,eAAO,MAAM,WAAW,EAAE,gBAAgB,EAoCzC,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,YAAY,UAGtB,CAAC;AAEJ;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,GAAE,gBAAgB,EAAO,EAChC,EAAE,KAAa,EAAE,GAAE;IAAE,KAAK,CAAC,EAAE,OAAO,CAAA;CAAO;;;iBA8CvB,MAAM;;;eA+Db,MAAM,UAAU,IAAI,GAAG,MAAM,GAAG,IAAI;EAGlD"}
@@ -0,0 +1,3 @@
1
+ /** The text without citation markers, outside code; `streaming` also hides a marker still being written. */
2
+ export declare function withoutCitationMarkers(text: string, streaming?: boolean): string;
3
+ //# sourceMappingURL=citations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"citations.d.ts","sourceRoot":"","sources":["../../../src/components/AssistantConversation/citations.ts"],"names":[],"mappings":"AAmBA,4GAA4G;AAC5G,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,UAAQ,GAAG,MAAM,CAW9E"}
@@ -1,2 +1,3 @@
1
- export { type AssistantBlock, AssistantConversation, type AssistantConversationProps, AssistantHeaderButton, type AssistantMessage, type AssistantStateFlags, assistantStateOf, } from "./AssistantConversation";
1
+ export { type AssistantBlock, AssistantConversation, type AssistantConversationProps, AssistantHeaderButton, type AssistantLayout, type AssistantMessage, type AssistantStateFlags, assistantStateOf, } from "./AssistantConversation";
2
+ export { withoutCitationMarkers } from "./citations";
2
3
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/AssistantConversation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,qBAAqB,EACrB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/AssistantConversation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EACnB,qBAAqB,EACrB,KAAK,0BAA0B,EAC/B,qBAAqB,EACrB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,gBAAgB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC"}
@@ -21,5 +21,5 @@ export interface AssistantDockProps extends Omit<AssistantConversationProps, "ac
21
21
  /** Past chats, shown in place of the thread when History is pressed. */
22
22
  history?: ReactNode;
23
23
  }
24
- export declare function AssistantDock({ open, onClose, pinned, onPinnedChange, focus, onFocusChange, width: widthProp, defaultWidth, onWidthChange, minWidth, maxWidth, onNewChat, history, className, style, ...conversation }: AssistantDockProps): import("react/jsx-runtime").JSX.Element;
24
+ export declare function AssistantDock({ open, onClose, pinned, onPinnedChange, focus, onFocusChange, width: widthProp, defaultWidth, onWidthChange, minWidth, maxWidth, onNewChat, history, layout, className, style, ...conversation }: AssistantDockProps): import("react/jsx-runtime").JSX.Element;
25
25
  //# sourceMappingURL=AssistantDock.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AssistantDock.d.ts","sourceRoot":"","sources":["../../../src/components/AssistantDock/AssistantDock.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,KAAK,0BAA0B,EAEhC,MAAM,gDAAgD,CAAC;AA2BxD,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,0BAA0B,EAAE,SAAS,CAAC;IACrF,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,sCAAsC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,wEAAwE;IACxE,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAID,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,OAAO,EACP,MAAa,EACb,cAAc,EACd,KAAa,EACb,aAAa,EACb,KAAK,EAAE,SAAS,EAChB,YAAkB,EAClB,aAAa,EACb,QAAc,EACd,QAAc,EACd,SAAS,EACT,OAAO,EACP,SAAS,EACT,KAAK,EACL,GAAG,YAAY,EAChB,EAAE,kBAAkB,2CAoHpB"}
1
+ {"version":3,"file":"AssistantDock.d.ts","sourceRoot":"","sources":["../../../src/components/AssistantDock/AssistantDock.tsx"],"names":[],"mappings":"AAEA,OAAO,EAGL,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AAEf,OAAO,EAEL,KAAK,0BAA0B,EAEhC,MAAM,gDAAgD,CAAC;AA4BxD,MAAM,WAAW,kBAAmB,SAAQ,IAAI,CAAC,0BAA0B,EAAE,SAAS,CAAC;IACrF,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,4DAA4D;IAC5D,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IAC3C,sCAAsC;IACtC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACzC,gCAAgC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,wEAAwE;IACxE,OAAO,CAAC,EAAE,SAAS,CAAC;CACrB;AAID,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,OAAO,EACP,MAAa,EACb,cAAc,EACd,KAAa,EACb,aAAa,EACb,KAAK,EAAE,SAAS,EAChB,YAAkB,EAClB,aAAa,EACb,QAAc,EACd,QAAc,EACd,SAAS,EACT,OAAO,EACP,MAAkB,EAClB,SAAS,EACT,KAAK,EACL,GAAG,YAAY,EAChB,EAAE,kBAAkB,2CAqHpB"}
@@ -22,6 +22,9 @@ export interface ChatToolTraceProps extends Omit<ComponentPropsWithoutRef<"detai
22
22
  /** Start expanded. Default `false` — but the trace auto-opens while a step
23
23
  * is still running so the activity is visible. */
24
24
  defaultOpen?: boolean;
25
+ /** Open by itself while a step runs. Default `true`; `false` keeps a slim
26
+ * one-line summary (the assistant's surfaces). */
27
+ autoOpen?: boolean;
25
28
  }
26
29
  export declare const ChatToolTrace: import("react").ForwardRefExoticComponent<ChatToolTraceProps & import("react").RefAttributes<HTMLDetailsElement>>;
27
30
  //# sourceMappingURL=ChatToolTrace.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatToolTrace.d.ts","sourceRoot":"","sources":["../../../src/components/ChatToolTrace/ChatToolTrace.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,wBAAwB,EAAc,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAO5F,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,iDAAiD;IACjD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,yCAAyC;IACzC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,mCAAmC;IACnC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACvE,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB;0CACsC;IACtC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;uDACmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAkED,eAAO,MAAM,aAAa,mHAkEzB,CAAC"}
1
+ {"version":3,"file":"ChatToolTrace.d.ts","sourceRoot":"","sources":["../../../src/components/ChatToolTrace/ChatToolTrace.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,wBAAwB,EAAc,KAAK,SAAS,EAAY,MAAM,OAAO,CAAC;AAO5F,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;AAE7E,MAAM,WAAW,YAAY;IAC3B,2CAA2C;IAC3C,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,4BAA4B;IAC5B,IAAI,EAAE,SAAS,CAAC;IAChB,iDAAiD;IACjD,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,yCAAyC;IACzC,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,mCAAmC;IACnC,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,6DAA6D;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBACf,SAAQ,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACvE,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB;0CACsC;IACtC,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB;uDACmD;IACnD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;uDACmD;IACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAkED,eAAO,MAAM,aAAa,mHAqEzB,CAAC"}
package/dist/index.cjs CHANGED
@@ -399,6 +399,7 @@ __export(src_exports, {
399
399
  validateNode: () => validateNode,
400
400
  validateWorkflow: () => validateWorkflow,
401
401
  videoEmbedOf: () => videoEmbedOf,
402
+ withoutCitationMarkers: () => withoutCitationMarkers,
402
403
  wouldCreateCycle: () => wouldCreateCycle,
403
404
  zIndex: () => zIndex
404
405
  });
@@ -9216,10 +9217,10 @@ function NodeGlyph({ status }) {
9216
9217
  }
9217
9218
  }
9218
9219
  var ChatToolTrace = (0, import_react63.forwardRef)(
9219
- function ChatToolTrace2({ calls, summary, defaultOpen = false, className, ...rest }, ref) {
9220
+ function ChatToolTrace2({ calls, summary, defaultOpen = false, autoOpen = true, className, ...rest }, ref) {
9220
9221
  const count = calls?.length ?? 0;
9221
9222
  const running = (calls ?? []).some((c) => c.status === "running" || c.status === "pending");
9222
- const [open, setOpen] = (0, import_react63.useState)(defaultOpen || running);
9223
+ const [open, setOpen] = (0, import_react63.useState)(defaultOpen || autoOpen && running);
9223
9224
  const defaultSummary = running ? "Working\u2026" : `Used ${count} ${count === 1 ? "tool" : "tools"}`;
9224
9225
  return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
9225
9226
  "details",
@@ -9552,6 +9553,36 @@ function AssistantHeaderButton({
9552
9553
  }
9553
9554
  );
9554
9555
  }
9556
+ function stepSummary(steps) {
9557
+ const running = steps.find((s) => s.status === "running" || s.status === "pending");
9558
+ if (running) return running.name;
9559
+ const only = steps.length === 1 ? steps[0] : void 0;
9560
+ if (!only) return void 0;
9561
+ return only.result == null ? only.name : /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, { children: [
9562
+ only.name,
9563
+ " \xB7 ",
9564
+ only.result
9565
+ ] });
9566
+ }
9567
+ function ReplyText({ message }) {
9568
+ return typeof message.content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9569
+ "span",
9570
+ {
9571
+ className: cn("ods-assistant__text", message.streaming && "ods-assistant__text--streaming"),
9572
+ children: message.content
9573
+ }
9574
+ ) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9575
+ "div",
9576
+ {
9577
+ className: cn(
9578
+ "ods-assistant__text",
9579
+ "ods-assistant__text--rich",
9580
+ message.streaming && "ods-assistant__text--streaming"
9581
+ ),
9582
+ children: message.content
9583
+ }
9584
+ );
9585
+ }
9555
9586
  function Block({
9556
9587
  block,
9557
9588
  busy,
@@ -9601,6 +9632,7 @@ function AssistantConversation({
9601
9632
  context,
9602
9633
  aura = "normal",
9603
9634
  hideHeader = false,
9635
+ layout = "comfortable",
9604
9636
  state: stateProp,
9605
9637
  greeting,
9606
9638
  suggestions,
@@ -9625,8 +9657,10 @@ function AssistantConversation({
9625
9657
  const state = stateProp ?? assistantStateOf(messages, busy, typing, { error: Boolean(error) });
9626
9658
  const statusLine = STATE_LINE[state] || subtitle;
9627
9659
  const tone = STATUS_TONE[state];
9660
+ const compact = layout === "compact";
9661
+ const said = (body) => compact ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "ods-assistant__answer", children: body }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ChatBubble, { variant: "bot", hideAvatar: true, children: body });
9628
9662
  const header = hideHeader ? void 0 : /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "ods-assistant__header", children: [
9629
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(AssistantOrb, { state, size: "md", children: avatar }),
9663
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(AssistantOrb, { state, size: compact ? "sm" : "md", children: avatar }),
9630
9664
  /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "ods-assistant__heading", children: [
9631
9665
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { id: nameId, className: "ods-assistant__name", children: name }),
9632
9666
  /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
@@ -9641,34 +9675,14 @@ function AssistantConversation({
9641
9675
  actions && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "ods-assistant__actions", children: actions })
9642
9676
  ] });
9643
9677
  const thread = /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, { children: [
9644
- greeting && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ChatBubble, { variant: "bot", hideAvatar: true, children: greeting }),
9678
+ greeting && said(greeting),
9645
9679
  messages.map(
9646
9680
  (m) => m.role === "user" ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ChatBubble, { variant: "user", hideAvatar: true, children: m.content }, m.id) : /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "ods-assistant__reply", children: [
9647
- m.steps && m.steps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ChatToolTrace, { calls: m.steps }),
9648
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ChatBubble, { variant: "bot", hideAvatar: true, children: m.content ? (
9649
- // Plain text keeps its line breaks; rendered content (markdown,
9650
- // lists) is block content and lays out its own lines.
9651
- typeof m.content === "string" ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9652
- "span",
9653
- {
9654
- className: cn(
9655
- "ods-assistant__text",
9656
- m.streaming && "ods-assistant__text--streaming"
9657
- ),
9658
- children: m.content
9659
- }
9660
- ) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9661
- "div",
9662
- {
9663
- className: cn(
9664
- "ods-assistant__text",
9665
- "ods-assistant__text--rich",
9666
- m.streaming && "ods-assistant__text--streaming"
9667
- ),
9668
- children: m.content
9669
- }
9670
- )
9671
- ) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ChatThinking, { variant: "shimmer", label: m.status || "Thinking\u2026", size: "sm" }) }),
9681
+ m.steps && m.steps.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ChatToolTrace, { calls: m.steps, summary: stepSummary(m.steps), autoOpen: false }),
9682
+ m.content ? said(/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ReplyText, { message: m })) : (
9683
+ // While a step runs, its line already says what is happening.
9684
+ !m.steps?.some((st) => st.status === "running") && said(/* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ChatThinking, { variant: "shimmer", label: m.status || "Thinking\u2026", size: "sm" }))
9685
+ ),
9672
9686
  m.blocks && m.blocks.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "ods-assistant__blocks", children: m.blocks.map((b, i) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9673
9687
  Block,
9674
9688
  {
@@ -9709,7 +9723,7 @@ function AssistantConversation({
9709
9723
  ...rest,
9710
9724
  state,
9711
9725
  intensity: aura,
9712
- className: cn("ods-assistant", className),
9726
+ className: cn("ods-assistant", compact && "ods-assistant--compact", className),
9713
9727
  children: replacement ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "ods-assistant__replacement", children: [
9714
9728
  header,
9715
9729
  context && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "ods-assistant__context", children: context }),
@@ -9759,6 +9773,20 @@ function AssistantConversation({
9759
9773
  );
9760
9774
  }
9761
9775
 
9776
+ // src/components/AssistantConversation/citations.ts
9777
+ var MARKERS = /[ \t]*(?:\[\d{1,3}(?:\s*[,–-]\s*\d{1,3})*(?:\s*·[^\]\n]{0,80})?\])+(?![(:])/g;
9778
+ var PARTIAL = /[ \t]*\[\d{0,3}(?:\s*[,–-]\s*\d{0,3})*(?:\s*·[^\]\n]{0,80})?$/;
9779
+ var CODE = /(```[\s\S]*?(?:```|$)|`[^`\n]*`)/;
9780
+ function withoutCitationMarkers(text, streaming = false) {
9781
+ const parts = text.split(CODE);
9782
+ const last = parts.length - 1;
9783
+ return parts.map((part, i) => {
9784
+ if (i % 2 === 1) return part;
9785
+ const clean = part.replace(MARKERS, "");
9786
+ return streaming && i === last ? clean.replace(PARTIAL, "") : clean;
9787
+ }).join("");
9788
+ }
9789
+
9762
9790
  // src/components/AssistantTrigger/AssistantTrigger.tsx
9763
9791
  var import_react66 = require("react");
9764
9792
  var import_jsx_runtime50 = require("react/jsx-runtime");
@@ -9851,6 +9879,7 @@ function AssistantDock({
9851
9879
  maxWidth = 720,
9852
9880
  onNewChat,
9853
9881
  history,
9882
+ layout = "compact",
9854
9883
  className,
9855
9884
  style,
9856
9885
  ...conversation
@@ -9949,6 +9978,7 @@ function AssistantDock({
9949
9978
  AssistantConversation,
9950
9979
  {
9951
9980
  ...conversation,
9981
+ layout,
9952
9982
  nameId,
9953
9983
  actions,
9954
9984
  replacement: showHistory && history ? history : conversation.replacement,
@@ -51425,6 +51455,7 @@ function applyVerticalLayout(nodes, edges) {
51425
51455
  validateNode,
51426
51456
  validateWorkflow,
51427
51457
  videoEmbedOf,
51458
+ withoutCitationMarkers,
51428
51459
  wouldCreateCycle,
51429
51460
  zIndex
51430
51461
  });