@ai-matrx/chat 0.6.5 → 0.7.0

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 (274) hide show
  1. package/CHANGELOG.md +89 -0
  2. package/README.md +1 -1
  3. package/dist/agents/components/agent-widgets/AgentChatHistorySidebar.js +16 -55
  4. package/dist/agents/components/chat/ChatHistorySidebar.d.ts +4 -4
  5. package/dist/agents/components/chat/ChatHistorySidebar.js +2 -2
  6. package/dist/agents/components/chat/ChatSidebarMenu.js +1 -1
  7. package/dist/agents/components/chat/chat-door.d.ts +67 -0
  8. package/dist/agents/components/chat/chat-door.js +100 -0
  9. package/dist/agents/components/conversation-actions/conversationActionRegistry.d.ts +8 -0
  10. package/dist/agents/components/conversation-actions/conversationActionRegistry.js +11 -4
  11. package/dist/agents/components/conversation-history/AgentConversationList.d.ts +83 -0
  12. package/dist/agents/components/conversation-history/AgentConversationList.js +252 -0
  13. package/dist/agents/components/conversation-history/ConversationArchiveSection.d.ts +11 -0
  14. package/dist/agents/components/conversation-history/{ConversationTrashSection.js → ConversationArchiveSection.js} +41 -23
  15. package/dist/agents/components/conversation-history/ConversationHistorySidebar.d.ts +29 -10
  16. package/dist/agents/components/conversation-history/ConversationHistorySidebar.js +94 -141
  17. package/dist/agents/components/conversation-history/ConversationPickerWindow.js +1 -2
  18. package/dist/agents/components/inputs/input-components/TextareaInput.js +2 -0
  19. package/dist/agents/components/inputs/input-components/VariableInputComponent.js +7 -6
  20. package/dist/agents/components/inputs/smart-input/ConversationCompanionPills.d.ts +3 -0
  21. package/dist/agents/components/inputs/smart-input/ConversationCompanionPills.js +40 -0
  22. package/dist/agents/components/inputs/smart-input/ConversationContextRail.js +6 -29
  23. package/dist/agents/components/inputs/smart-input/DeviceToolsModeRow.d.ts +3 -0
  24. package/dist/agents/components/inputs/smart-input/DeviceToolsModeRow.js +35 -0
  25. package/dist/agents/components/inputs/smart-input/InboxQueueStrip.js +0 -8
  26. package/dist/agents/components/inputs/smart-input/RunControlsTabPanel.d.ts +2 -0
  27. package/dist/agents/components/inputs/smart-input/RunControlsTabPanel.js +8 -1
  28. package/dist/agents/components/inputs/smart-input/RunToolPicker.js +17 -12
  29. package/dist/agents/components/inputs/smart-input/composer/ComposerPlusMenu.js +22 -0
  30. package/dist/agents/components/inputs/smart-input/rail-pill.d.ts +35 -0
  31. package/dist/agents/components/inputs/smart-input/rail-pill.js +30 -0
  32. package/dist/agents/components/inputs/variable-input-variations/AgentVariableForm.js +52 -48
  33. package/dist/agents/components/run/AgentRunHeader.js +11 -5
  34. package/dist/agents/components/run-controls/panels/shared.d.ts +1 -1
  35. package/dist/agents/components/shared/AgentHeaderMobile.js +1 -0
  36. package/dist/agents/components/shared/AgentModeController.js +91 -27
  37. package/dist/agents/components/shared/AgentSelectorIsland.js +2 -1
  38. package/dist/agents/components/shell/AgentRunSidebarMenu.js +15 -54
  39. package/dist/agents/components/working-document/documents-workspace/DocumentsListRail.js +1 -2
  40. package/dist/agents/engine.d.ts +15 -0
  41. package/dist/agents/engine.js +17 -0
  42. package/dist/agents/hooks/useModelControls.js +3 -175
  43. package/dist/agents/redux/agent-definition/run-tier-record.js +1 -0
  44. package/dist/agents/redux/agent-definition/selectors.d.ts +237 -237
  45. package/dist/agents/redux/agent-shortcut-categories/selectors.d.ts +50 -50
  46. package/dist/agents/redux/agent-shortcuts/selectors.d.ts +147 -147
  47. package/dist/agents/redux/conversation-history/history-filters.d.ts +6 -0
  48. package/dist/agents/redux/conversation-history/history-filters.js +4 -1
  49. package/dist/agents/redux/conversation-history/selectors.js +2 -3
  50. package/dist/agents/redux/conversation-history/slice.d.ts +6 -9
  51. package/dist/agents/redux/conversation-history/slice.js +14 -23
  52. package/dist/agents/redux/conversation-history/thunks.js +7 -41
  53. package/dist/agents/redux/conversation-history/types.d.ts +12 -12
  54. package/dist/agents/redux/conversation-history/types.js +4 -6
  55. package/dist/agents/redux/conversation-list/conversation-list.selectors.d.ts +7 -73
  56. package/dist/agents/redux/conversation-list/conversation-list.selectors.js +12 -36
  57. package/dist/agents/redux/conversation-list/conversation-list.slice.d.ts +7 -22
  58. package/dist/agents/redux/conversation-list/conversation-list.slice.js +7 -62
  59. package/dist/agents/redux/conversation-list/conversation-list.thunks.d.ts +0 -25
  60. package/dist/agents/redux/conversation-list/conversation-list.thunks.js +2 -58
  61. package/dist/agents/redux/conversation-list/conversation-list.types.d.ts +6 -5
  62. package/dist/agents/redux/conversation-list/conversation-row-actions.thunks.js +11 -2
  63. package/dist/agents/redux/conversation-list/conversation-rows.d.ts +16 -0
  64. package/dist/agents/redux/conversation-list/conversation-rows.js +24 -0
  65. package/dist/agents/redux/conversation-list/conversation-trash.thunks.d.ts +12 -4
  66. package/dist/agents/redux/conversation-list/conversation-trash.thunks.js +52 -36
  67. package/dist/agents/redux/execution-system/active-requests/active-requests.selectors.d.ts +54 -54
  68. package/dist/agents/redux/execution-system/context-state/context-state.selectors.d.ts +14 -14
  69. package/dist/agents/redux/execution-system/conversations/conversations.selectors.d.ts +5 -5
  70. package/dist/agents/redux/execution-system/instance-context/instance-context.selectors.d.ts +3 -3
  71. package/dist/agents/redux/execution-system/instance-resources/instance-resources.selectors.d.ts +8 -8
  72. package/dist/agents/redux/execution-system/instance-ui-state/instance-ui-state.selectors.d.ts +5 -5
  73. package/dist/agents/redux/execution-system/instance-variable-values/instance-variable-values.selectors.d.ts +7 -7
  74. package/dist/agents/redux/execution-system/message-crud/soft-delete-conversation.thunk.js +5 -2
  75. package/dist/agents/redux/execution-system/messages/messages.selectors.d.ts +1 -1
  76. package/dist/agents/redux/execution-system/observability/observability.selectors.d.ts +7 -7
  77. package/dist/agents/redux/execution-system/observational-memory/observational-memory.selectors.d.ts +1 -1
  78. package/dist/agents/redux/execution-system/selectors/aggregate.selectors.d.ts +14 -14
  79. package/dist/agents/redux/execution-system/thunks/create-instance.thunk.d.ts +10 -1
  80. package/dist/agents/redux/execution-system/thunks/create-instance.thunk.js +114 -265
  81. package/dist/agents/redux/execution-system/thunks/dispatch-matrx-extend-tool.thunk.js +18 -2
  82. package/dist/agents/redux/execution-system/thunks/dispatch-surface-client-tool.thunk.js +10 -28
  83. package/dist/agents/redux/execution-system/thunks/dispatch-surface-write.thunk.js +10 -25
  84. package/dist/agents/redux/execution-system/thunks/execute-instance.thunk.js +20 -0
  85. package/dist/agents/redux/execution-system/thunks/execute-manual-instance.thunk.js +6 -1
  86. package/dist/agents/redux/execution-system/thunks/notify-and-play-dispatcher.d.ts +58 -0
  87. package/dist/agents/redux/execution-system/thunks/notify-and-play-dispatcher.js +62 -0
  88. package/dist/agents/redux/execution-system/thunks/post-delegated-tool-outcome.d.ts +23 -0
  89. package/dist/agents/redux/execution-system/thunks/post-delegated-tool-outcome.js +37 -0
  90. package/dist/agents/redux/execution-system/thunks/resume-instance.thunk.js +10 -2
  91. package/dist/agents/redux/execution-system/utils/build-tool-injection.d.ts +7 -0
  92. package/dist/agents/redux/execution-system/utils/build-tool-injection.js +18 -6
  93. package/dist/agents/redux/execution-system/utils/host-turn.d.ts +45 -0
  94. package/dist/agents/redux/execution-system/utils/host-turn.js +119 -0
  95. package/dist/agents/redux/proposed-directives/proposedDirectivesSlice.d.ts +1 -1
  96. package/dist/agents/scribe-tools/dispatcher/dispatch-scribe-tool.thunk.d.ts +50 -20
  97. package/dist/agents/scribe-tools/dispatcher/dispatch-scribe-tool.thunk.js +9 -101
  98. package/dist/agents/types/tool-injection.types.d.ts +18 -2
  99. package/dist/agents/ui-first-tools/redux/agent-lists.selectors.d.ts +2 -2
  100. package/dist/agents/ui-first-tools/redux/pending-asks.slice.d.ts +2 -1
  101. package/dist/agents/ui-first-tools/redux/resolve-asks-with-input.thunk.js +1 -1
  102. package/dist/agents/ui-first-tools/tools/ask-response.d.ts +29 -0
  103. package/dist/agents/ui-first-tools/tools/ask-response.js +15 -0
  104. package/dist/agents/ui-first-tools/tools/schemas.d.ts +3 -25
  105. package/dist/agents/ui-first-tools/tools/schemas.js +1 -12
  106. package/dist/agents/ui-first-tools/ui/ApprovalCard.js +1 -1
  107. package/dist/agents/ui-first-tools/ui/AskWizard.d.ts +1 -1
  108. package/dist/agents/ui-first-tools/ui/AskWizard.js +1 -1
  109. package/dist/cx-chat/_legacy-stubs.d.ts +5 -5
  110. package/dist/cx-chat/components/SsrSidebarChats.js +13 -15
  111. package/dist/cx-chat/components/messages/UserMessage.d.ts +2 -2
  112. package/dist/cx-chat/types/conversation.d.ts +6 -6
  113. package/dist/cx-chat/utils/buildContentBlocksForSave.d.ts +1 -1
  114. package/dist/cx-chat/utils/cx-content-converter.d.ts +1 -1
  115. package/dist/host/bare-host-chrome.js +9 -3
  116. package/dist/host/composer-extensions.d.ts +75 -0
  117. package/dist/host/composer-extensions.js +92 -0
  118. package/dist/host/configure.js +1 -0
  119. package/dist/host/contract.d.ts +105 -13
  120. package/dist/host/defaults/confirm.d.ts +15 -0
  121. package/dist/host/defaults/confirm.js +25 -0
  122. package/dist/host/defaults/files-ui.d.ts +85 -0
  123. package/dist/host/defaults/files-ui.js +158 -0
  124. package/dist/host/defaults/gates.d.ts +27 -0
  125. package/dist/host/defaults/gates.js +72 -0
  126. package/dist/host/defaults/media-client.d.ts +15 -0
  127. package/dist/host/defaults/media-client.js +40 -0
  128. package/dist/host/defaults/voice.d.ts +81 -0
  129. package/dist/host/defaults/voice.js +239 -0
  130. package/dist/host/device-tool-handoff.d.ts +26 -0
  131. package/dist/host/device-tool-handoff.js +45 -0
  132. package/dist/host/index.d.ts +1 -0
  133. package/dist/host/index.js +4 -1
  134. package/dist/host/microphone.d.ts +11 -0
  135. package/dist/host/microphone.js +17 -0
  136. package/dist/host/ui-slots.d.ts +29 -74
  137. package/dist/host/ui-slots.js +40 -42
  138. package/dist/store/create-chat-store.d.ts +2 -2
  139. package/dist/store/middlewares.d.ts +5 -5
  140. package/dist/store/slices.d.ts +1 -1
  141. package/dist/surfaces/redux/selectors.d.ts +2 -2
  142. package/dist/tool-call-visualization/components/ToolCallVisualization.js +3 -2
  143. package/dist/tool-call-visualization/configured-rows/ConfiguredRowRenderer.d.ts +15 -0
  144. package/dist/tool-call-visualization/configured-rows/ConfiguredRowRenderer.js +36 -0
  145. package/dist/tool-call-visualization/configured-rows/ConfiguredToolRow.d.ts +40 -0
  146. package/dist/tool-call-visualization/configured-rows/ConfiguredToolRow.js +296 -0
  147. package/dist/tool-call-visualization/configured-rows/CopyToolButton.d.ts +23 -0
  148. package/dist/tool-call-visualization/configured-rows/CopyToolButton.js +62 -0
  149. package/dist/tool-call-visualization/configured-rows/ToolProgressView.d.ts +23 -0
  150. package/dist/tool-call-visualization/configured-rows/ToolProgressView.js +147 -0
  151. package/dist/tool-call-visualization/configured-rows/field-components.d.ts +15 -0
  152. package/dist/tool-call-visualization/configured-rows/field-components.js +244 -0
  153. package/dist/tool-call-visualization/configured-rows/helpers.d.ts +39 -0
  154. package/dist/tool-call-visualization/configured-rows/helpers.js +110 -0
  155. package/dist/tool-call-visualization/configured-rows/register.d.ts +25 -0
  156. package/dist/tool-call-visualization/configured-rows/register.js +51 -0
  157. package/dist/tool-call-visualization/configured-rows/registries.d.ts +27 -0
  158. package/dist/tool-call-visualization/configured-rows/registries.js +14 -0
  159. package/dist/tool-call-visualization/configured-rows/to-row-entry.d.ts +8 -0
  160. package/dist/tool-call-visualization/configured-rows/to-row-entry.js +38 -0
  161. package/dist/tool-call-visualization/configured-rows/transforms.d.ts +14 -0
  162. package/dist/tool-call-visualization/configured-rows/transforms.js +30 -0
  163. package/dist/tool-call-visualization/configured-rows/types.d.ts +140 -0
  164. package/dist/tool-call-visualization/redux/selectors.d.ts +1 -1
  165. package/dist/tool-call-visualization/registry/registry.d.ts +1 -1
  166. package/dist/tool-call-visualization/registry/registry.js +8 -1
  167. package/dist/tool-call-visualization/types.d.ts +1 -1
  168. package/dist/ui/chat-protocol-types.d.ts +0 -1
  169. package/dist/ui/ownership.d.ts +25 -0
  170. package/dist/ui/ownership.js +18 -0
  171. package/dist/voice-agent/audio/audioCapture.js +11 -6
  172. package/dist/window-panels/windows/agents/AgentRunHistoryWindow.d.ts +1 -2
  173. package/dist/window-panels/windows/agents/AgentRunHistoryWindow.js +21 -181
  174. package/dist/window-panels/windows/agents/AgentRunWindow.d.ts +1 -1
  175. package/dist/window-panels/windows/agents/AgentRunWindow.js +27 -21
  176. package/dist/window-panels/windows/agents/RunControlsWindow.js +1 -0
  177. package/package.json +4583 -121
  178. package/dist/agents/components/agent-widgets/chat-assistant/AssistantMessageCard.d.ts +0 -7
  179. package/dist/agents/components/agent-widgets/chat-assistant/AssistantMessageCard.js +0 -33
  180. package/dist/agents/components/agent-widgets/chat-assistant/StatusCard.d.ts +0 -6
  181. package/dist/agents/components/agent-widgets/chat-assistant/StatusCard.js +0 -21
  182. package/dist/agents/components/agent-widgets/chat-assistant/UserMessageCard.d.ts +0 -6
  183. package/dist/agents/components/agent-widgets/chat-assistant/UserMessageCard.js +0 -11
  184. package/dist/agents/components/agent-widgets/chat-assistant/VariableInputCard.d.ts +0 -12
  185. package/dist/agents/components/agent-widgets/chat-assistant/VariableInputCard.js +0 -7
  186. package/dist/agents/components/agent-widgets/execution-gates/PreExecutionCard.d.ts +0 -4
  187. package/dist/agents/components/agent-widgets/execution-gates/PreExecutionCard.js +0 -81
  188. package/dist/agents/components/conversation-history/ConversationTrashSection.d.ts +0 -7
  189. package/dist/agents/components/run/run-sidebar/SidebarHeader.d.ts +0 -21
  190. package/dist/agents/components/run/run-sidebar/SidebarHeader.js +0 -50
  191. package/dist/agents/components/run-controls/AdvancedRunSettings/index.d.ts +0 -6
  192. package/dist/agents/components/run-controls/AdvancedRunSettings/index.js +0 -32
  193. package/dist/agents/components/run-controls/RunSettingsModal.d.ts +0 -5
  194. package/dist/agents/components/run-controls/RunSettingsModal.js +0 -22
  195. package/dist/agents/components/shell/AgentBuildSidebarExtras.d.ts +0 -6
  196. package/dist/agents/components/shell/AgentBuildSidebarExtras.js +0 -30
  197. package/dist/agents/constants/agent-system-competitors.d.ts +0 -9
  198. package/dist/agents/constants/agent-system-competitors.js +0 -125
  199. package/dist/agents/hooks/message-crud/useMessageActions.d.ts +0 -29
  200. package/dist/agents/hooks/message-crud/useMessageActions.js +0 -119
  201. package/dist/agents/hooks/useConversationPendingCalls.d.ts +0 -30
  202. package/dist/agents/hooks/useConversationPendingCalls.js +0 -42
  203. package/dist/agents/model-registry/model-classes.d.ts +0 -1
  204. package/dist/agents/model-registry/model-classes.js +0 -1
  205. package/dist/agents/redux/conversation-history/index.d.ts +0 -18
  206. package/dist/agents/redux/conversation-history/index.js +0 -4
  207. package/dist/agents/redux/execution-system/instance-variable-values/instance-variable-values.thunks.d.ts +0 -38
  208. package/dist/agents/redux/execution-system/instance-variable-values/instance-variable-values.thunks.js +0 -42
  209. package/dist/agents/redux/execution-system/message-crud/server/compact-turns.thunk.d.ts +0 -58
  210. package/dist/agents/redux/execution-system/message-crud/server/compact-turns.thunk.js +0 -50
  211. package/dist/agents/redux/execution-system/message-crud/server/fork-and-run-server.thunk.d.ts +0 -76
  212. package/dist/agents/redux/execution-system/message-crud/server/fork-and-run-server.thunk.js +0 -101
  213. package/dist/agents/redux/execution-system/thunks/attach-workflow-run.d.ts +0 -38
  214. package/dist/agents/redux/execution-system/thunks/attach-workflow-run.js +0 -25
  215. package/dist/agents/redux/execution-system/utils/source-slice-helpers.d.ts +0 -45
  216. package/dist/agents/redux/execution-system/utils/source-slice-helpers.js +0 -50
  217. package/dist/agents/runtime/realtime/launchRealtimeSession.thunk.d.ts +0 -25
  218. package/dist/agents/runtime/realtime/launchRealtimeSession.thunk.js +0 -15
  219. package/dist/agents/services/agentService.d.ts +0 -12
  220. package/dist/agents/services/agentService.js +0 -92
  221. package/dist/agents/utils/escape-code-fences.d.ts +0 -15
  222. package/dist/agents/utils/escape-code-fences.js +0 -9
  223. package/dist/agents/utils/normalize-managed-options.d.ts +0 -30
  224. package/dist/agents/utils/normalize-managed-options.js +0 -29
  225. package/dist/agents/utils/processedDocumentContext.d.ts +0 -51
  226. package/dist/agents/utils/processedDocumentContext.js +0 -51
  227. package/dist/agents/utils/variable-validation.d.ts +0 -28
  228. package/dist/agents/utils/variable-validation.js +0 -54
  229. package/dist/cx-chat/components/ChatConversationSkeleton.d.ts +0 -9
  230. package/dist/cx-chat/components/ChatConversationSkeleton.js +0 -45
  231. package/dist/cx-chat/components/ChatPanelBackButton.d.ts +0 -1
  232. package/dist/cx-chat/components/ChatPanelBackButton.js +0 -26
  233. package/dist/cx-chat/components/messages/MessageErrorBoundary.d.ts +0 -20
  234. package/dist/cx-chat/components/messages/MessageErrorBoundary.js +0 -40
  235. package/dist/cx-chat/components/variable-inputs/CheckboxGroupInput.d.ts +0 -14
  236. package/dist/cx-chat/components/variable-inputs/CheckboxGroupInput.js +0 -160
  237. package/dist/cx-chat/components/variable-inputs/NumberInput.d.ts +0 -15
  238. package/dist/cx-chat/components/variable-inputs/NumberInput.js +0 -79
  239. package/dist/cx-chat/components/variable-inputs/RadioGroupInput.d.ts +0 -14
  240. package/dist/cx-chat/components/variable-inputs/RadioGroupInput.js +0 -125
  241. package/dist/cx-chat/components/variable-inputs/SelectInput.d.ts +0 -14
  242. package/dist/cx-chat/components/variable-inputs/SelectInput.js +0 -92
  243. package/dist/cx-chat/components/variable-inputs/TextareaInput.d.ts +0 -14
  244. package/dist/cx-chat/components/variable-inputs/TextareaInput.js +0 -46
  245. package/dist/cx-chat/components/variable-inputs/ToggleInput.d.ts +0 -14
  246. package/dist/cx-chat/components/variable-inputs/ToggleInput.js +0 -46
  247. package/dist/cx-chat/hooks/useChatPersistence.d.ts +0 -28
  248. package/dist/cx-chat/hooks/useChatPersistence.js +0 -180
  249. package/dist/cx-chat/hooks/useInstanceBootstrap.d.ts +0 -1
  250. package/dist/cx-chat/hooks/useInstanceBootstrap.js +0 -115
  251. package/dist/cx-chat/types/content.d.ts +0 -184
  252. package/dist/cx-chat/types/content.js +0 -91
  253. package/dist/cx-chat/types/cx-tables.d.ts +0 -176
  254. package/dist/cx-chat/utils/settings-diff.d.ts +0 -13
  255. package/dist/cx-chat/utils/settings-diff.js +0 -25
  256. package/dist/public-chat/components/AgentSelector.d.ts +0 -22
  257. package/dist/public-chat/components/AgentSelector.js +0 -80
  258. package/dist/public-chat/components/GuidedVariableInputs.d.ts +0 -25
  259. package/dist/public-chat/components/GuidedVariableInputs.js +0 -623
  260. package/dist/public-chat/components/PublicVariableInputs.d.ts +0 -29
  261. package/dist/public-chat/components/PublicVariableInputs.js +0 -172
  262. package/dist/public-chat/types/content.d.ts +0 -184
  263. package/dist/public-chat/types/content.js +0 -91
  264. package/dist/tool-call-visualization/renderers/_shared-entity/EntityOpenActions.d.ts +0 -15
  265. package/dist/tool-call-visualization/renderers/_shared-entity/EntityOpenActions.js +0 -31
  266. package/dist/tool-call-visualization/utils/toolCallBlockToLifecycleEntry.d.ts +0 -24
  267. package/dist/tool-call-visualization/utils/toolCallBlockToLifecycleEntry.js +0 -26
  268. package/dist/ui/AudioOutputBlockSkeleton.d.ts +0 -17
  269. package/dist/ui/AudioOutputBlockSkeleton.js +0 -78
  270. package/dist/ui/lazy/PublicChatVariableInputs.d.ts +0 -2
  271. package/dist/ui/lazy/PublicChatVariableInputs.js +0 -16
  272. package/dist/utils/xml/readXmlTag.d.ts +0 -12
  273. package/dist/utils/xml/readXmlTag.js +0 -66
  274. /package/dist/{cx-chat/types/cx-tables.js → tool-call-visualization/configured-rows/types.js} +0 -0
@@ -1,6 +1,5 @@
1
1
  "use client";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
- import { ArchivedDisclosure } from "@ai-matrx/design-system";
4
3
  import { useEffect, useMemo, useState } from "react";
5
4
  import { useRouter, usePathname, useSearchParams } from "../../../host/navigation.js";
6
5
  import { Loader2, ChevronRight, ChevronDown } from "lucide-react";
@@ -9,10 +8,9 @@ import { useAppDispatch, useAppSelector } from "../../../store/hooks.js";
9
8
  import { selectAgentById } from "../../redux/agent-definition/selectors.js";
10
9
  import { fetchAgentConversations } from "../../redux/conversation-list/conversation-list.thunks.js";
11
10
  import { makeSelectAgentConversations } from "../../redux/conversation-list/conversation-list.selectors.js";
12
- import { ItemRow } from "../../../host/ui-slots.js";
11
+ import { ConversationArchiveSection } from "../conversation-history/ConversationArchiveSection.js";
12
+ import { ConversationListRow } from "../conversation-history/AgentConversationList.js";
13
13
  import { Button } from "@ai-matrx/design-system/controls";
14
- import { buildConversationMenu } from "../conversation-actions/conversationActionRegistry.js";
15
- import { renameConversation } from "../../redux/conversation-list/conversation-row-actions.thunks.js";
16
14
  import {
17
15
  buildAgentRunUrl,
18
16
  resolveAgentRunRoute
@@ -68,7 +66,6 @@ function AgentRunSidebarMenu({
68
66
  archived,
69
67
  error: convError
70
68
  } = useAppSelector(selectConversations);
71
- const [showArchived, setShowArchived] = useState(false);
72
69
  useEffect(() => {
73
70
  if (canonicalAgentId && convStatus === "idle") {
74
71
  dispatch(
@@ -83,7 +80,6 @@ function AgentRunSidebarMenu({
83
80
  () => groupByVersion(conversations),
84
81
  [conversations]
85
82
  );
86
- const archivedGroups = useMemo(() => groupByVersion(archived), [archived]);
87
83
  const handleConversationSelect = (convId) => {
88
84
  if (!runRoute) return;
89
85
  router.push(buildAgentRunUrl(runRoute, convId));
@@ -142,28 +138,15 @@ function AgentRunSidebarMenu({
142
138
  onSelect: handleConversationSelect
143
139
  },
144
140
  version
145
- )),
146
- /* @__PURE__ */ jsx(
147
- ArchivedDisclosure,
148
- {
149
- count: archived.length,
150
- open: showArchived,
151
- onOpenChange: setShowArchived,
152
- className: "mx-1 mt-1",
153
- children: archivedGroups.map(({ version, items }) => /* @__PURE__ */ jsx(
154
- VersionGroup,
155
- {
156
- version,
157
- items,
158
- runRoute,
159
- activeConversationId: conversationIdFromUrl,
160
- onSelect: handleConversationSelect
161
- },
162
- version
163
- ))
164
- }
165
- )
166
- ] })
141
+ ))
142
+ ] }),
143
+ canonicalAgentId && /* @__PURE__ */ jsx(
144
+ ConversationArchiveSection,
145
+ {
146
+ agentIds: [canonicalAgentId],
147
+ onOpen: handleConversationSelect
148
+ }
149
+ )
167
150
  ] });
168
151
  }
169
152
  function VersionGroup({
@@ -208,39 +191,17 @@ function ConversationRow({
208
191
  isActive,
209
192
  onSelect
210
193
  }) {
211
- const dispatch = useAppDispatch();
212
- const title = conv.title?.trim() || "Untitled";
213
- const href = buildAgentRunUrl(runRoute, conv.conversationId);
214
194
  return /* @__PURE__ */ jsx(
215
- ItemRow,
195
+ ConversationListRow,
216
196
  {
197
+ conv,
198
+ href: buildAgentRunUrl(runRoute, conv.conversationId),
217
199
  sourceFeature: "agent-runner",
200
+ surfaceKey: `agent-run:${runRoute.agentId}`,
218
201
  className: "mx-1",
219
- size: "sm",
220
- label: title,
221
202
  secondaryLabel: conv.updatedAt ? formatRelativeDate(conv.updatedAt) : void 0,
222
203
  active: isActive,
223
204
  onOpen: onSelect,
224
- menu: () => buildConversationMenu({
225
- conversationId: conv.conversationId,
226
- title: conv.title,
227
- isFavorite: conv.isFavorite ?? false,
228
- isArchived: conv.status === "archived",
229
- excludeFromKg: conv.excludeFromKg ?? false,
230
- href,
231
- surfaceKey: `agent-run:${runRoute.agentId}`,
232
- dispatch
233
- }),
234
- rename: {
235
- value: conv.title ?? "",
236
- emptyFallback: "Untitled",
237
- onCommit: (next) => void dispatch(
238
- renameConversation({
239
- conversationId: conv.conversationId,
240
- title: next
241
- })
242
- )
243
- },
244
205
  trailing: isActive ? /* @__PURE__ */ jsx(ChevronRight, { className: "w-3 h-3 shrink-0" }) : void 0
245
206
  }
246
207
  );
@@ -128,8 +128,7 @@ function DocumentsListRail({
128
128
  entity: {
129
129
  type: "document",
130
130
  id: d.id,
131
- title: label,
132
- resourceType: "document"
131
+ title: label
133
132
  },
134
133
  size: "sm",
135
134
  active: isActive,
@@ -0,0 +1,15 @@
1
+ /**
2
+ * THE ENGINE DOOR — the few operations a host that drives ONE conversation by hand (outside the
3
+ * chat screens) needs: create an instance, load a saved conversation, send, cancel, write the draft,
4
+ * and ask whether a turn is running. workflow-studio's launcher-agent chat is the first caller.
5
+ *
6
+ * A stable public subpath (`@ai-matrx/chat/agents/engine`, in FRONT_DOOR): the modules behind it may
7
+ * move; a host never deep-imports them. Add to this list when a host legitimately needs another
8
+ * operation — never hand a host the redux internals.
9
+ */
10
+ export { createInstanceFull } from "./redux/execution-system/create-instance-full.js";
11
+ export { destroyInstance, patchConversation } from "./redux/execution-system/conversations/conversations.slice.js";
12
+ export { loadConversation } from "./redux/execution-system/thunks/load-conversation.thunk.js";
13
+ export { cancelExecution, smartExecute } from "./redux/execution-system/thunks/smart-execute.thunk.js";
14
+ export { setUserInputText } from "./redux/execution-system/instance-user-input/instance-user-input.slice.js";
15
+ export { selectIsExecuting, selectLatestRequestStatus } from "./redux/execution-system/selectors/aggregate.selectors.js";
@@ -0,0 +1,17 @@
1
+ import { createInstanceFull } from "./redux/execution-system/create-instance-full.js";
2
+ import { destroyInstance, patchConversation } from "./redux/execution-system/conversations/conversations.slice.js";
3
+ import { loadConversation } from "./redux/execution-system/thunks/load-conversation.thunk.js";
4
+ import { cancelExecution, smartExecute } from "./redux/execution-system/thunks/smart-execute.thunk.js";
5
+ import { setUserInputText } from "./redux/execution-system/instance-user-input/instance-user-input.slice.js";
6
+ import { selectIsExecuting, selectLatestRequestStatus } from "./redux/execution-system/selectors/aggregate.selectors.js";
7
+ export {
8
+ cancelExecution,
9
+ createInstanceFull,
10
+ destroyInstance,
11
+ loadConversation,
12
+ patchConversation,
13
+ selectIsExecuting,
14
+ selectLatestRequestStatus,
15
+ setUserInputText,
16
+ smartExecute
17
+ };
@@ -1,8 +1,6 @@
1
1
  "use client";
2
- import { LLM_PARAMS_KEYS } from "@ai-matrx/agents/generated/llm-enums";
3
- import { UI_GATE_KEYS } from "../redux/agent-settings/ui-gates.js";
2
+ import { extractModelDefaults, parseModelControls } from "@ai-matrx/agents/settings";
4
3
  import { isJsonObject } from "@ai-matrx/rich-content/utils/json";
5
- import { outputFormatControlKey } from "@ai-matrx/agents/models";
6
4
  function supportsTools(normalizedControls) {
7
5
  const normalizedTools = normalizedControls?.tools;
8
6
  const rawTools = normalizedControls?.rawControls?.tools;
@@ -91,148 +89,7 @@ function resolveModelControls(models, selectedModelId, classControls) {
91
89
  error: null
92
90
  };
93
91
  }
94
- const normalized = {
95
- rawControls: controls,
96
- unmappedControls: {}
97
- };
98
- const knownKeys = /* @__PURE__ */ new Set([
99
- ...LLM_PARAMS_KEYS,
100
- // Pre-canonical-rename DB keys — Python's LLMParams._remap_aliases
101
- // normalises these at the API boundary. Recognized here so the FE
102
- // renders them when a model's controls JSONB declares them.
103
- "max_tokens",
104
- "output_format",
105
- "n",
106
- // Provider-native aliases LLMParams._FIELD_ALIASES accepts (gpt-image-*
107
- // `quality` → render_quality, Together `output_quality` → encode_quality,
108
- // `seconds` → duration_seconds). Unlisted, a model declaring them had its
109
- // control silently dropped into unmappedControls — gpt-image-2's Quality
110
- // never rendered in the builder and a saved value read as "unknown key".
111
- "quality",
112
- "output_quality",
113
- "seconds",
114
- // Model-gated UI flags from model controls (e.g. { allowed: true }). These
115
- // indicate what a model supports — they live in agent.uiGates, not in
116
- // LLMParams. Recognized here (via the canonical UI_GATE_KEYS) so the parser
117
- // surfaces them in NormalizedControls, which the UI-gates editor reads to
118
- // know which gates to offer. Actual tool definitions are assembled
119
- // separately via client_tools.
120
- ...UI_GATE_KEYS,
121
- "multi_speaker",
122
- // ── Media-gen provider-native names (May 2026) ────────────────────
123
- // Each model's controls JSONB carries the EXACT field names the
124
- // provider's API accepts. Python normalises aliases (`seconds` →
125
- // `duration_seconds`, `quality` → `render_quality`, `n` /
126
- // `num_outputs` / `number_of_images` → `count`, etc.). The FE just
127
- // needs to recognize these as valid control keys so the parser
128
- // surfaces them in NormalizedControls instead of dumping to
129
- // unmappedControls.
130
- // Dimensions
131
- "aspect_ratio",
132
- "ratio",
133
- // Together video / Replicate Runway
134
- "resolution",
135
- "image_size",
136
- // Imagen / Gemini-image
137
- "num_outputs",
138
- // Replicate
139
- "number_of_images",
140
- // Imagen direct
141
- // Image quality / encoding
142
- "render_quality",
143
- "background",
144
- "input_fidelity",
145
- "output_compression",
146
- "moderation",
147
- "partial_images",
148
- "output_mime_type",
149
- // Imagen direct
150
- "include_rai_reason",
151
- "person_generation",
152
- "image_format",
153
- // xAI base64/url
154
- "style",
155
- "reference_strength",
156
- // Video
157
- "duration_seconds",
158
- "duration",
159
- // xAI / Replicate native
160
- "generate_audio",
161
- "encode_quality",
162
- "enhance_prompt",
163
- "video_action",
164
- // MediaRef-shaped inputs
165
- "image_input",
166
- "image_inputs",
167
- "input_images",
168
- // Replicate gpt-image-*
169
- "image",
170
- // Replicate Seedream/Veo/Wan/Seedance
171
- "image_url",
172
- // Together image i2i singular (separate from FE flag image_urls)
173
- "start_image",
174
- // Replicate Kling
175
- "end_image",
176
- // Replicate Kling
177
- "prompt_image",
178
- // Replicate Runway
179
- "first_frame_image",
180
- // Replicate Hailuo
181
- "start_image_url",
182
- // Replicate Luma Ray-3
183
- "last_frame",
184
- // Google Veo SDK
185
- "last_frame_image",
186
- // canonical + Replicate Veo
187
- "mask",
188
- "video_input",
189
- "media"
190
- // Together Wan I2V
191
- ]);
192
- Object.entries(controls).forEach(([key, value]) => {
193
- if (!knownKeys.has(key)) {
194
- normalized.unmappedControls[key] = value;
195
- return;
196
- }
197
- const normalizedKey = outputFormatControlKey(key, value);
198
- if (!isJsonObject(value)) {
199
- console.warn(
200
- `Skipping malformed control "${key}" for model \u2014 expected object, got:`,
201
- typeof value
202
- );
203
- return;
204
- }
205
- const rawDefault = value.default;
206
- const flatDefault = rawDefault !== null && typeof rawDefault === "object" && !Array.isArray(rawDefault) && "type" in rawDefault ? String(rawDefault.type) : rawDefault;
207
- const controlDef = {
208
- type: value.type || "string",
209
- min: value.min,
210
- max: value.max,
211
- default: flatDefault,
212
- required: value.required
213
- };
214
- if (value.enum && Array.isArray(value.enum)) {
215
- controlDef.enum = value.enum.map((option) => {
216
- if (option !== null && typeof option === "object" && "type" in option) {
217
- return String(option.type);
218
- }
219
- return String(option);
220
- });
221
- controlDef.type = "enum";
222
- } else if ("allowed" in value) {
223
- controlDef.type = "boolean";
224
- controlDef.default = value.allowed;
225
- } else if (typeof value.default === "boolean") {
226
- controlDef.type = "boolean";
227
- } else if (value.type === void 0 && (value.min !== void 0 || value.max !== void 0)) {
228
- if (value.default && Number.isInteger(value.default)) {
229
- controlDef.type = "integer";
230
- } else {
231
- controlDef.type = "number";
232
- }
233
- }
234
- normalized[normalizedKey] = controlDef;
235
- });
92
+ const normalized = parseModelControls(controls);
236
93
  return {
237
94
  normalizedControls: normalized,
238
95
  selectedModel,
@@ -243,7 +100,6 @@ function getModelDefaults(model) {
243
100
  if (!isJsonObject(model) || !model.controls) {
244
101
  return {};
245
102
  }
246
- const defaults = {};
247
103
  let controls = model.controls;
248
104
  if (typeof controls === "string") {
249
105
  try {
@@ -259,35 +115,7 @@ function getModelDefaults(model) {
259
115
  if (!isJsonObject(controls)) {
260
116
  return {};
261
117
  }
262
- const uiOnlyKeys = /* @__PURE__ */ new Set(["tools"]);
263
- Object.entries(controls).forEach(([key, value]) => {
264
- const normalizedKey = outputFormatControlKey(key, value);
265
- if (!isJsonObject(value)) {
266
- return;
267
- }
268
- if (uiOnlyKeys.has(normalizedKey)) {
269
- if (normalizedKey === "tools" && value.allowed) {
270
- defaults[normalizedKey] = [];
271
- }
272
- return;
273
- }
274
- let defaultValue = void 0;
275
- if (value.default !== void 0 && value.default !== null) {
276
- defaultValue = value.default;
277
- } else if ("allowed" in value && !uiOnlyKeys.has(normalizedKey)) {
278
- defaultValue = value.allowed;
279
- } else if (value.enum && Array.isArray(value.enum) && value.enum.length > 0) {
280
- defaultValue = value.enum[0];
281
- }
282
- if (defaultValue === void 0) return;
283
- if (normalizedKey === "response_format" && typeof defaultValue === "string") {
284
- if (defaultValue === "text" || defaultValue === "") return;
285
- defaults[normalizedKey] = { type: defaultValue };
286
- return;
287
- }
288
- defaults[normalizedKey] = defaultValue;
289
- });
290
- return defaults;
118
+ return extractModelDefaults(controls);
291
119
  }
292
120
  export {
293
121
  getModelDefaults,
@@ -45,6 +45,7 @@ function completeAgentRecord(record, state) {
45
45
  if (unread("contextPolicies")) fill("contextPolicies", rt.context_policies ?? []);
46
46
  if (unread("autoContextDisabled")) fill("autoContextDisabled", rt.auto_context_disabled === true);
47
47
  if (rt.model_id && unread("modelId")) fill("modelId", rt.model_id);
48
+ if (rt.settings && unread("settings")) fill("settings", rt.settings);
48
49
  if (unread("uiGates")) fill("uiGates", rt.ui_gates ?? {});
49
50
  if (rt.tool_ids && unread("tools")) fill("tools", rt.tool_ids);
50
51
  if (!out.name && unread("name")) fill("name", rt.name);