@octaviaflow/core 3.1.0-beta.117 → 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.
Files changed (31) hide show
  1. package/dist/chunk-FM34SY5X.js +3691 -0
  2. package/dist/chunk-FM34SY5X.js.map +1 -0
  3. package/dist/chunk-JHIV4QHZ.js +3707 -0
  4. package/dist/chunk-JHIV4QHZ.js.map +1 -0
  5. package/dist/chunk-MSRO4K25.js +3691 -0
  6. package/dist/chunk-MSRO4K25.js.map +1 -0
  7. package/dist/chunk-ZHTMPKJN.js +3704 -0
  8. package/dist/chunk-ZHTMPKJN.js.map +1 -0
  9. package/dist/components/AssistantConversation/AssistantConversation.d.ts +5 -1
  10. package/dist/components/AssistantConversation/AssistantConversation.d.ts.map +1 -1
  11. package/dist/components/AssistantConversation/assistant.fixtures.d.ts +2 -0
  12. package/dist/components/AssistantConversation/assistant.fixtures.d.ts.map +1 -1
  13. package/dist/components/AssistantConversation/citations.d.ts +3 -0
  14. package/dist/components/AssistantConversation/citations.d.ts.map +1 -0
  15. package/dist/components/AssistantConversation/index.d.ts +2 -1
  16. package/dist/components/AssistantConversation/index.d.ts.map +1 -1
  17. package/dist/components/AssistantDock/AssistantDock.d.ts +1 -1
  18. package/dist/components/AssistantDock/AssistantDock.d.ts.map +1 -1
  19. package/dist/components/ChatToolTrace/ChatToolTrace.d.ts +3 -0
  20. package/dist/components/ChatToolTrace/ChatToolTrace.d.ts.map +1 -1
  21. package/dist/index.cjs +62 -17
  22. package/dist/index.cjs.map +1 -1
  23. package/dist/index.d.ts +2 -2
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +18 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/marketing.cjs +44 -17
  28. package/dist/marketing.cjs.map +1 -1
  29. package/dist/marketing.js +1 -1
  30. package/dist/styles.css +1 -1
  31. package/package.json +1 -1
@@ -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",
@@ -9520,7 +9521,7 @@ var STATE_LINE = {
9520
9521
  thinking: "Thinking\u2026",
9521
9522
  processing: "Working\u2026",
9522
9523
  speaking: "Writing\u2026",
9523
- done: "Done",
9524
+ done: "",
9524
9525
  stopped: "Stopped",
9525
9526
  error: "Couldn't answer",
9526
9527
  offline: "Offline"
@@ -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,20 +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 ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9649
- "span",
9650
- {
9651
- className: cn(
9652
- "ods-assistant__text",
9653
- m.streaming && "ods-assistant__text--streaming"
9654
- ),
9655
- children: m.content
9656
- }
9657
- ) : /* @__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
+ ),
9658
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)(
9659
9687
  Block,
9660
9688
  {
@@ -9695,7 +9723,7 @@ function AssistantConversation({
9695
9723
  ...rest,
9696
9724
  state,
9697
9725
  intensity: aura,
9698
- className: cn("ods-assistant", className),
9726
+ className: cn("ods-assistant", compact && "ods-assistant--compact", className),
9699
9727
  children: replacement ? /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "ods-assistant__replacement", children: [
9700
9728
  header,
9701
9729
  context && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "ods-assistant__context", children: context }),
@@ -9745,6 +9773,20 @@ function AssistantConversation({
9745
9773
  );
9746
9774
  }
9747
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
+
9748
9790
  // src/components/AssistantTrigger/AssistantTrigger.tsx
9749
9791
  var import_react66 = require("react");
9750
9792
  var import_jsx_runtime50 = require("react/jsx-runtime");
@@ -9837,6 +9879,7 @@ function AssistantDock({
9837
9879
  maxWidth = 720,
9838
9880
  onNewChat,
9839
9881
  history,
9882
+ layout = "compact",
9840
9883
  className,
9841
9884
  style,
9842
9885
  ...conversation
@@ -9935,6 +9978,7 @@ function AssistantDock({
9935
9978
  AssistantConversation,
9936
9979
  {
9937
9980
  ...conversation,
9981
+ layout,
9938
9982
  nameId,
9939
9983
  actions,
9940
9984
  replacement: showHistory && history ? history : conversation.replacement,
@@ -51411,6 +51455,7 @@ function applyVerticalLayout(nodes, edges) {
51411
51455
  validateNode,
51412
51456
  validateWorkflow,
51413
51457
  videoEmbedOf,
51458
+ withoutCitationMarkers,
51414
51459
  wouldCreateCycle,
51415
51460
  zIndex
51416
51461
  });