@mgamadeus/ddd-agents 0.1.0-alpha.22 → 0.1.0-alpha.23

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 (143) hide show
  1. package/README.md +3 -2
  2. package/dist/chat.js +22 -72
  3. package/dist/chat.js.map +1 -1
  4. package/dist/chunks/{ConversationMarkdown-W7NHglmL.js → ConversationMarkdown-CJhAnuVa.js} +110 -8
  5. package/dist/chunks/ConversationMarkdown-CJhAnuVa.js.map +1 -0
  6. package/dist/chunks/{WebSearchResultsConversationWidget-BvnLWHyi.js → WebSearchResultsConversationWidget-DRBQvycE.js} +140 -1125
  7. package/dist/chunks/WebSearchResultsConversationWidget-DRBQvycE.js.map +1 -0
  8. package/dist/chunks/{canvasBodies-9SuF6NAB.js → canvasBodies-DLjDkviP.js} +9 -6
  9. package/dist/chunks/canvasBodies-DLjDkviP.js.map +1 -0
  10. package/dist/chunks/{canvas-behaviours-BRFR1ALE.js → decide-canvas-open-DBWoWtAC.js} +18 -2
  11. package/dist/chunks/decide-canvas-open-DBWoWtAC.js.map +1 -0
  12. package/dist/chunks/entity-detail-name-3A82gDAp.js +15 -0
  13. package/dist/chunks/entity-detail-name-3A82gDAp.js.map +1 -0
  14. package/dist/chunks/icon-names-Di6c4zLo.js +86 -0
  15. package/dist/chunks/icon-names-Di6c4zLo.js.map +1 -0
  16. package/dist/chunks/index-7Qc_3GbG.js +1046 -0
  17. package/dist/chunks/index-7Qc_3GbG.js.map +1 -0
  18. package/dist/chunks/{widget-image-readiness-signal-DeOuL89j.js → widget-image-readiness-signal-D3ci53xr.js} +2 -2
  19. package/dist/chunks/{widget-image-readiness-signal-DeOuL89j.js.map → widget-image-readiness-signal-D3ci53xr.js.map} +1 -1
  20. package/dist/chunks/{widget-name-resolver-DyIY6Zu4.js → widget-name-resolver-C8SfpiR5.js} +48 -116
  21. package/dist/chunks/widget-name-resolver-C8SfpiR5.js.map +1 -0
  22. package/dist/client-testing.js +68 -1
  23. package/dist/client-testing.js.map +1 -1
  24. package/dist/files/chat/Conversation.module.scss +268 -0
  25. package/dist/files/chat/ConversationViewBody/ConversationViewBody.module.scss +336 -0
  26. package/dist/files/chat/_conversation-tokens.scss +37 -0
  27. package/dist/files/image-render/WidgetImageRender.module.scss +22 -0
  28. package/dist/files/kit/ComposedViewConversationWidget.md +59 -0
  29. package/dist/files/kit/components/data/data.preview-fixtures.json +3298 -0
  30. package/dist/files/kit/components/embedding/widget.preview-fixtures.json +147 -0
  31. package/dist/files/kit/components/entity/entity-link.preview-fixtures.json +340 -0
  32. package/dist/files/kit/components/form/form.preview-fixtures.json +319 -0
  33. package/dist/files/kit/components/inputs/button.preview-fixtures.json +301 -0
  34. package/dist/files/kit/components/inputs/checkbox.preview-fixtures.json +35 -0
  35. package/dist/files/kit/components/inputs/date-picker.preview-fixtures.json +36 -0
  36. package/dist/files/kit/components/inputs/input.preview-fixtures.json +55 -0
  37. package/dist/files/kit/components/inputs/radio-group.preview-fixtures.json +76 -0
  38. package/dist/files/kit/components/inputs/select.preview-fixtures.json +314 -0
  39. package/dist/files/kit/components/inputs/slider.preview-fixtures.json +178 -0
  40. package/dist/files/kit/components/inputs/tabs.preview-fixtures.json +304 -0
  41. package/dist/files/kit/components/inputs/textarea.preview-fixtures.json +37 -0
  42. package/dist/files/kit/components/layout/layout.preview-fixtures.json +892 -0
  43. package/dist/files/kit/components/map/map.preview-fixtures.json +339 -0
  44. package/dist/files/kit/components/media/image-group.preview-fixtures.json +228 -0
  45. package/dist/files/kit/components/media/image.preview-fixtures.json +61 -0
  46. package/dist/files/kit/components/media/video-card/video-card.preview-fixtures.json +121 -0
  47. package/dist/files/kit/components/media/video.preview-fixtures.json +68 -0
  48. package/dist/files/kit/components/rich/code.preview-fixtures.json +105 -0
  49. package/dist/files/kit/components/rich/diagram.preview-fixtures.json +89 -0
  50. package/dist/files/kit/components/rich/math.preview-fixtures.json +152 -0
  51. package/dist/files/kit/components/rich/svg.preview-fixtures.json +243 -0
  52. package/dist/files/kit/components/text/badge.preview-fixtures.json +44 -0
  53. package/dist/files/kit/components/text/caption.preview-fixtures.json +31 -0
  54. package/dist/files/kit/components/text/favicon.preview-fixtures.json +69 -0
  55. package/dist/files/kit/components/text/label.preview-fixtures.json +48 -0
  56. package/dist/files/kit/components/text/link.preview-fixtures.json +103 -0
  57. package/dist/files/kit/components/text/markdown.preview-fixtures.json +29 -0
  58. package/dist/files/kit/components/text/source-ref.preview-fixtures.json +51 -0
  59. package/dist/files/kit/components/text/text.preview-fixtures.json +106 -0
  60. package/dist/files/kit/components/text/title.preview-fixtures.json +172 -0
  61. package/dist/files/kit/composed-view-widget-contract.json +88 -0
  62. package/dist/files/kit/composed-view.preview-fixtures.json +376 -0
  63. package/dist/files/renderer/conversation-widget-layout.module.scss +47 -0
  64. package/dist/files/renderer/widget-tree/composed-node-schema.json +3428 -0
  65. package/dist/files/styles/_conversation-widget-container.scss +6 -0
  66. package/dist/files/styles/_media.scss +50 -0
  67. package/dist/files/styles/_spacings.scss +23 -0
  68. package/dist/files/styles/_surfaces.scss +28 -0
  69. package/dist/files/widgets/ClockConversationWidget/ClockConversationWidget.md +53 -0
  70. package/dist/files/widgets/ClockConversationWidget/clock.preview-fixtures.json +76 -0
  71. package/dist/files/widgets/ConceptExplainerConversationWidget/ConceptExplainerConversationWidget.md +86 -0
  72. package/dist/files/widgets/ConceptExplainerConversationWidget/concept-explainer.preview-fixtures.json +23 -0
  73. package/dist/files/widgets/ConversationSearchResultsConversationWidget/ConversationSearchResultsConversationWidget.md +59 -0
  74. package/dist/files/widgets/ConversationSearchResultsConversationWidget/conversation-search-results.preview-fixtures.json +85 -0
  75. package/dist/files/widgets/CurrencyConverterConversationWidget/CurrencyConverterConversationWidget.md +51 -0
  76. package/dist/files/widgets/CurrencyConverterConversationWidget/currency-converter.preview-fixtures.json +73 -0
  77. package/dist/files/widgets/CustomVisualizationConversationWidget/CustomVisualizationConversationWidget.md +83 -0
  78. package/dist/files/widgets/CustomVisualizationConversationWidget/custom-visualization.preview-fixtures.json +227 -0
  79. package/dist/files/widgets/CustomVisualizationConversationWidget/sandbox-frame/custom-visualization-frame.html +188 -0
  80. package/dist/files/widgets/EntityMentionConversationWidget/EntityMentionConversationWidget.md +55 -0
  81. package/dist/files/widgets/EntityMentionConversationWidget/entity-mention.preview-fixtures.json +55 -0
  82. package/dist/files/widgets/MultiChoiceConversationWidget/MultiChoiceConversationWidget.md +61 -0
  83. package/dist/files/widgets/MultiChoiceConversationWidget/multi-choice-widget-contract.json +43 -0
  84. package/dist/files/widgets/MultiChoiceConversationWidget/multi-choice.preview-fixtures.json +103 -0
  85. package/dist/files/widgets/QuickRepliesConversationWidget/QuickRepliesConversationWidget.md +65 -0
  86. package/dist/files/widgets/QuickRepliesConversationWidget/quick-replies-widget-contract.json +43 -0
  87. package/dist/files/widgets/QuickRepliesConversationWidget/quick-replies.preview-fixtures.json +45 -0
  88. package/dist/files/widgets/SuggestedActions/SuggestedActions.md +60 -0
  89. package/dist/files/widgets/SuggestedActions/suggested-actions.preview-fixtures.json +19 -0
  90. package/dist/files/widgets/ToolTraceConversationWidget/ToolTraceConversationWidget.md +48 -0
  91. package/dist/files/widgets/ToolTraceConversationWidget/tool-trace.preview-fixtures.json +32 -0
  92. package/dist/files/widgets/WebSearchResultsConversationWidget/WebSearchResultsConversationWidget.md +49 -0
  93. package/dist/files/widgets/WebSearchResultsConversationWidget/web-search-results.preview-fixtures.json +57 -0
  94. package/dist/files/widgets/WritingDraftConversationWidget/WritingDraftConversationWidget.md +66 -0
  95. package/dist/files/widgets/WritingDraftConversationWidget/writing-draft.preview-fixtures.json +129 -0
  96. package/dist/image-render.js +11 -10
  97. package/dist/image-render.js.map +1 -1
  98. package/dist/index.js +32 -28
  99. package/dist/index.js.map +1 -1
  100. package/dist/kit.js +11 -2
  101. package/dist/kit.js.map +1 -1
  102. package/dist/preview.js +7 -6
  103. package/dist/provider.js +71 -0
  104. package/dist/provider.js.map +1 -0
  105. package/dist/renderer.js +138 -63
  106. package/dist/renderer.js.map +1 -1
  107. package/dist/styles.css +32 -17
  108. package/dist/types/client/testing/test-conversation-widgets.d.ts +25 -0
  109. package/dist/types/client/testing/widget-hydration-stand-ins.d.ts +33 -0
  110. package/dist/types/entries/chat.d.ts +10 -0
  111. package/dist/types/entries/client-testing.d.ts +2 -0
  112. package/dist/types/entries/index.d.ts +4 -3
  113. package/dist/types/entries/kit.d.ts +7 -0
  114. package/dist/types/entries/preview.d.ts +1 -0
  115. package/dist/types/entries/provider.d.ts +1 -0
  116. package/dist/types/entries/renderer.d.ts +16 -0
  117. package/dist/types/entries/widgets.d.ts +13 -0
  118. package/dist/types/kit/components/data/apex-chart-component.d.ts +3 -0
  119. package/dist/types/kit/components/data/chart-model.d.ts +164 -0
  120. package/dist/types/kit/components/data/data-value-format.d.ts +44 -0
  121. package/dist/types/kit/components/data/use-chart-palette.d.ts +9 -0
  122. package/dist/types/kit/components/data/use-number-locale.d.ts +5 -0
  123. package/dist/types/provider/index.d.ts +1 -0
  124. package/dist/types/renderer/_access/ConversationWidgetGateSkeleton.d.ts +6 -0
  125. package/dist/types/renderer/_agent-space/use-conversation-widget-agent-space-fallback.d.ts +16 -0
  126. package/dist/types/renderer/canvas/use-anchor-widget-agent-space-key.d.ts +17 -0
  127. package/dist/types/renderer/conversationWidgetRegistry.d.ts +6 -0
  128. package/dist/types/renderer/read-conversation-widget-variant.d.ts +22 -0
  129. package/dist/types/widgets/_shared/CardFooter.d.ts +6 -0
  130. package/dist/types/widgets/_shared/WidgetLabel.d.ts +8 -0
  131. package/dist/types/widgets/_shared/entity-update-channel.d.ts +17 -0
  132. package/dist/types/widgets/_shared/use-element-visible.d.ts +6 -0
  133. package/dist/widgets.js +120 -27
  134. package/dist/widgets.js.map +1 -1
  135. package/package.json +74 -1
  136. package/public-api.json +761 -0
  137. package/dist/chunks/ConversationMarkdown-W7NHglmL.js.map +0 -1
  138. package/dist/chunks/WebSearchResultsConversationWidget-BvnLWHyi.js.map +0 -1
  139. package/dist/chunks/canvas-behaviours-BRFR1ALE.js.map +0 -1
  140. package/dist/chunks/canvasBodies-9SuF6NAB.js.map +0 -1
  141. package/dist/chunks/decide-canvas-open-Ct-wnNEJ.js +0 -20
  142. package/dist/chunks/decide-canvas-open-Ct-wnNEJ.js.map +0 -1
  143. package/dist/chunks/widget-name-resolver-DyIY6Zu4.js.map +0 -1
package/README.md CHANGED
@@ -10,6 +10,7 @@ Pre-release: the API may still change between versions.
10
10
  npm install @mgamadeus/ddd-agents@next
11
11
  ```
12
12
 
13
- Entries: `@mgamadeus/ddd-agents` (provider and setup), `/chat`, `/renderer`, `/widgets`, `/kit`, `/contract`,
13
+ Entries: `@mgamadeus/ddd-agents` (provider and setup), `/provider` (the provider alone), `/chat`, `/renderer`, `/widgets`, `/kit`, `/contract`,
14
14
  `/client`, `/client/testing`, `/preview`, `/image-render`, and the stylesheet `@mgamadeus/ddd-agents/styles.css`
15
- (import it once). React 19 and the libraries listed under `peerDependencies` come from the application.
15
+ (import it once). Non-code files (widget documentation, preview fixtures, contracts, the node schema, the
16
+ sandbox frame, SCSS tokens) are exported one subpath per file at their path below `src`. React 19 and the libraries listed under `peerDependencies` come from the application.
package/dist/chat.js CHANGED
@@ -3,13 +3,13 @@ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
3
3
  import { useRef, useEffect, useMemo, useCallback, useSyncExternalStore, useContext, createContext, useState, useImperativeHandle, useLayoutEffect, memo, Fragment as Fragment$1, useReducer } from "react";
4
4
  import { u as useAgentsConversationClient, a as useOptionalAgentsConversationClient } from "./chunks/AgentsConversationClientContext-C4T7g_Qk.js";
5
5
  import { w as withPollingChangeSubscription } from "./chunks/withPollingChangeSubscription-BLDAWF-o.js";
6
- import { q as Text, I as Icon, aA as useConversationWidgetContext, ax as payloadHashOfInstanceId, b0 as buildWidgetAgentSpaceKeyProps, ab as sameCanvasIdentity, a5 as useAgentsEnvironment, a8 as useAgentsStateDispatch, a9 as useAgentsStateSelector, bh as CANVAS_VIABLE_MIN_WIDTH, ad as ConversationWidgetContext, a1 as translateText, G as GlowFrame, t as Tooltip, B as Button, z as classNames, l as Skeleton, N as getFurtherWidgetClickSignalSources, h as Markdown, F as getAgentDisplayName, a3 as useAgentsBudgetLimit, f as InteractiveSurface, L as LoadingSpinner, bk as useCanvasViable, n as SplitView, _ as reportRunningTurn, a2 as useAgentsActiveAgentSpaceKey, P as ProgressBar } from "./chunks/WebSearchResultsConversationWidget-BvnLWHyi.js";
6
+ import { q as Text, I as Icon, a3 as useAgentsEnvironment, a6 as useAgentsStateDispatch, a7 as useAgentsStateSelector, $ as translateText, G as GlowFrame, t as Tooltip, B as Button, z as classNames, l as Skeleton, N as getFurtherWidgetClickSignalSources, h as Markdown, F as getAgentDisplayName, a1 as useAgentsBudgetLimit, f as InteractiveSurface, L as LoadingSpinner, n as SplitView, Y as reportRunningTurn, a0 as useAgentsActiveAgentSpaceKey, P as ProgressBar } from "./chunks/index-7Qc_3GbG.js";
7
7
  import { isAgentsClientError, AgentsClientError } from "./contract.js";
8
- import { W as WIDGET_FENCE_LANG, v as resolveWidgetName, o as conversationWidgetRegistry, B as findWidgetFencesInMarkdown, j as ConversationWidgetErrorBoundary, k as ConversationWidgetFeatureGate, N as parseWidgetJsonObject, u as resolveCanonicalWidgetName, q as getConversationWidgetRegistryRevision, O as BARE_WIDGET_LINE_GLOBAL, m as closestWidgetNames } from "./chunks/widget-name-resolver-DyIY6Zu4.js";
9
- import { i as isCanvasId, d as canvasBehaviourOf, c as CHAT_COLUMN_MIN_WIDTH_PX, b as CANVAS_MIN_WIDTH_PX, D as DEFAULT_CANVAS_WIDTH_PERCENT, e as canvasWidthPercentOf, C as CANVAS_BOXED_INSET_PX } from "./chunks/canvas-behaviours-BRFR1ALE.js";
10
- import { d as decideCanvasOpen } from "./chunks/decide-canvas-open-Ct-wnNEJ.js";
11
- import { W as WidgetWindowRootContext, C as ConversationMarkdown, b as buildWidgetRenderReportSignal, c as WIDGET_RENDER_REPORT_SIGNAL_SOURCE, d as createWidgetRenderReportCollector, e as WidgetRenderReportCollectorContext } from "./chunks/ConversationMarkdown-W7NHglmL.js";
12
- import { c as canvasBodies } from "./chunks/canvasBodies-9SuF6NAB.js";
8
+ import { W as WIDGET_FENCE_LANG, z as resolveWidgetName, j as conversationWidgetRegistry, m as findWidgetFencesInMarkdown, n as ConversationWidgetErrorBoundary, o as ConversationWidgetFeatureGate, Q as parseWidgetJsonObject, y as resolveCanonicalWidgetName, v as getConversationWidgetRegistryRevision, R as BARE_WIDGET_LINE_GLOBAL, q as closestWidgetNames } from "./chunks/widget-name-resolver-C8SfpiR5.js";
9
+ import { D as useConversationWidgetContext, p as payloadHashOfInstanceId, i as buildWidgetAgentSpaceKeyProps, V as CANVAS_VIABLE_MIN_WIDTH, f as ConversationWidgetContext, ao as useCanvasViable } from "./chunks/WebSearchResultsConversationWidget-DRBQvycE.js";
10
+ import { i as isCanvasId, d as canvasBehaviourOf, c as CHAT_COLUMN_MIN_WIDTH_PX, b as CANVAS_MIN_WIDTH_PX, D as DEFAULT_CANVAS_WIDTH_PERCENT, e as canvasWidthPercentOf, C as CANVAS_BOXED_INSET_PX } from "./chunks/decide-canvas-open-DBWoWtAC.js";
11
+ import { r as resolveDeepLinkableWidget, f as applySetCanvasCreatedEntityId, b as applyClearCanvas, e as applyResetCanvasForNewTurn, c as applyCloseCanvas, d as applyOpenCanvas, i as WidgetWindowRootContext, C as ConversationMarkdown, g as buildWidgetRenderReportSignal, W as WIDGET_RENDER_REPORT_SIGNAL_SOURCE, j as createWidgetRenderReportCollector, k as WidgetRenderReportCollectorContext } from "./chunks/ConversationMarkdown-CJhAnuVa.js";
12
+ import { c as canvasBodies } from "./chunks/canvasBodies-DLjDkviP.js";
13
13
  import { c as canvasFeatureFlagOf } from "./chunks/canvas-feature-flags-BmmxC3bz.js";
14
14
  import { flushSync } from "react-dom";
15
15
  const history = "agents_history_BIbikt";
@@ -422,10 +422,6 @@ const CanvasRestoreOnMount = ({ conversationId, messages }) => {
422
422
  }, [conversationId, messages, openCanvas]);
423
423
  return null;
424
424
  };
425
- const resolveDeepLinkableWidget = (widgetName) => {
426
- if (!widgetName) return null;
427
- return conversationWidgetRegistry.widgets.find((entry) => entry.name === widgetName && entry.deepLinkable === true) ?? null;
428
- };
429
425
  const ConversationDeepLinkedWidget = ({ widgetName, agentSpaceKey }) => {
430
426
  const entry = useMemo(() => resolveDeepLinkableWidget(widgetName), [widgetName]);
431
427
  if (!entry) return null;
@@ -465,68 +461,6 @@ const INITIAL_AGENTS_CHAT_STATE = {
465
461
  lastClosedCanvas: null,
466
462
  canvasMountCount: 0
467
463
  };
468
- const toLastClosed = (canvas, closedByCustomer) => ({
469
- canvasId: canvas.canvasId,
470
- instanceId: canvas.instanceId,
471
- anchor: canvas.anchor,
472
- mountGeneration: canvas.mountGeneration,
473
- closedByCustomer,
474
- ...canvas.createdEntityId !== void 0 ? { createdEntityId: canvas.createdEntityId } : {}
475
- });
476
- const nextMountGeneration = (state) => {
477
- state.canvasMountCount += 1;
478
- return state.canvasMountCount;
479
- };
480
- const applyOpenCanvas = (state, request) => {
481
- const decision = decideCanvasOpen(canvasBehaviourOf(request.canvasId), state.canvas, state.lastClosedCanvas, request);
482
- if (decision.kind === "ignore") return decision;
483
- const previous = state.canvas;
484
- const mountGeneration = nextMountGeneration(state);
485
- const carriedCreatedEntityId = request.createdEntityId ?? (previous !== null && sameCanvasIdentity(previous, request) ? previous.createdEntityId : void 0) ?? (state.lastClosedCanvas !== null && sameCanvasIdentity(state.lastClosedCanvas, request) ? state.lastClosedCanvas.createdEntityId : void 0);
486
- if (previous !== null && !sameCanvasIdentity(previous, request)) {
487
- state.lastClosedCanvas = toLastClosed(previous, false);
488
- } else if (state.lastClosedCanvas !== null && sameCanvasIdentity(state.lastClosedCanvas, request)) {
489
- state.lastClosedCanvas = null;
490
- }
491
- state.canvas = {
492
- canvasId: request.canvasId,
493
- instanceId: request.instanceId,
494
- anchor: request.anchor,
495
- origin: request.origin,
496
- mountGeneration,
497
- ...carriedCreatedEntityId !== void 0 ? { createdEntityId: carriedCreatedEntityId } : {}
498
- };
499
- return decision;
500
- };
501
- const applyCloseCanvas = (state, byCustomer) => {
502
- if (state.canvas === null) return;
503
- state.lastClosedCanvas = toLastClosed(state.canvas, byCustomer);
504
- state.canvas = null;
505
- };
506
- const applyResetCanvasForNewTurn = (state) => {
507
- if (state.canvas !== null && canvasBehaviourOf(state.canvas.canvasId)?.lifetime === "turn") {
508
- state.canvas = null;
509
- }
510
- if (state.lastClosedCanvas !== null) {
511
- if (canvasBehaviourOf(state.lastClosedCanvas.canvasId)?.lifetime === "turn") {
512
- state.lastClosedCanvas = null;
513
- } else if (state.lastClosedCanvas.closedByCustomer) {
514
- state.lastClosedCanvas = { ...state.lastClosedCanvas, closedByCustomer: false };
515
- }
516
- }
517
- };
518
- const applyClearCanvas = (state) => {
519
- state.canvas = null;
520
- state.lastClosedCanvas = null;
521
- };
522
- const applySetCanvasCreatedEntityId = (state, created) => {
523
- const canvas = state.canvas;
524
- if (canvas === null || !sameCanvasIdentity(canvas, created) || canvas.mountGeneration !== created.mountGeneration) {
525
- return false;
526
- }
527
- state.canvas = { ...canvas, createdEntityId: created.createdEntityId };
528
- return true;
529
- };
530
464
  const ConversationErrorType = {
531
465
  AI_BUDGET: "AI_BUDGET",
532
466
  /**
@@ -3486,6 +3420,7 @@ const LINE_PACE_MS = 2200;
3486
3420
  const BACKLOG_LINE_PACE_MS = 1400;
3487
3421
  const BACKLOG_THRESHOLD = 2;
3488
3422
  const MAX_WAITING_LINES = 4;
3423
+ const isStepStillRunning = (line) => line.state === "queued" || line.state === "running";
3489
3424
  const EMPTY_ACTIVITY_TICKER_QUEUE = {
3490
3425
  shownLines: {},
3491
3426
  trailIds: [],
@@ -3579,6 +3514,10 @@ const countWorkingHelpers = (elements) => {
3579
3514
  });
3580
3515
  return workingHelperKeys.size;
3581
3516
  };
3517
+ const formatElapsedClock = (elapsedMs) => {
3518
+ const elapsedSeconds = Math.max(0, Math.floor(elapsedMs / 1e3));
3519
+ return `${Math.floor(elapsedSeconds / 60)}:${String(elapsedSeconds % 60).padStart(2, "0")}`;
3520
+ };
3582
3521
  const INITIAL_ACTIVITY_TICKER_STATE = {
3583
3522
  queue: EMPTY_ACTIVITY_TICKER_QUEUE,
3584
3523
  phase: "idle",
@@ -5237,21 +5176,32 @@ export {
5237
5176
  AgentChatController,
5238
5177
  AgentsChatStateContainer,
5239
5178
  AgentsChatStoreProvider,
5179
+ CanvasPane,
5240
5180
  CanvasRestoreOnMount,
5241
5181
  ConversationClosedBar,
5242
5182
  ConversationErrorCard,
5243
5183
  ConversationErrorType,
5184
+ ConversationMessageInput,
5244
5185
  ConversationMessageInputAttachmentsErrorBox,
5245
5186
  ConversationMessageInputAttachmentsPreviewStrip,
5187
+ ConversationMessageList,
5188
+ ConversationMessageSystem,
5189
+ ConversationMessageUser,
5190
+ ConversationMessageWidgets,
5246
5191
  ConversationView,
5247
5192
  ConversationWidgetProvider,
5248
5193
  EMPTY_AGENTS_CHAT_OPENING_REQUEST,
5249
5194
  INITIAL_AGENTS_CHAT_STATE,
5195
+ MAX_MESSAGE_LENGTH,
5196
+ SUCCESS_BEAT_MS,
5250
5197
  createAgentsChatStore,
5251
5198
  deriveAgentActivity,
5199
+ formatElapsedClock,
5200
+ isStepStillRunning,
5252
5201
  normalizeServerMessageToMarkdown,
5253
5202
  readConversationErrorTypeOfRefusedSend,
5254
5203
  reduceAgentsChatState,
5204
+ useActivityTicker,
5255
5205
  useAgentsChatSelector,
5256
5206
  useAgentsChatState,
5257
5207
  useAgentsChatStore,