@dxos/plugin-assistant 0.8.4-main.67995b8 → 0.8.4-main.dedc0f3

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 (522) hide show
  1. package/dist/lib/browser/{BlueprintContainer-IZ4AK5EO.mjs → BlueprintContainer-BFNN6K46.mjs} +4 -3
  2. package/dist/lib/browser/ChatCompanion-YYYCHZYV.mjs +126 -0
  3. package/dist/lib/browser/ChatCompanion-YYYCHZYV.mjs.map +7 -0
  4. package/dist/lib/browser/{ChatContainer-RP3QEXYX.mjs → ChatContainer-G6YHR6GJ.mjs} +34 -13
  5. package/dist/lib/browser/ChatContainer-G6YHR6GJ.mjs.map +7 -0
  6. package/dist/lib/browser/{ChatDialog-ZVLXFHEY.mjs → ChatDialog-HJ7VDRQO.mjs} +28 -12
  7. package/dist/lib/browser/ChatDialog-HJ7VDRQO.mjs.map +7 -0
  8. package/dist/lib/browser/{SequenceContainer-3UDVKWPA.mjs → SequenceContainer-TF5QNXYM.mjs} +5 -17
  9. package/dist/lib/browser/SequenceContainer-TF5QNXYM.mjs.map +7 -0
  10. package/dist/lib/browser/ai-service-YC2EQPHA.mjs +22 -0
  11. package/dist/lib/browser/ai-service-YC2EQPHA.mjs.map +7 -0
  12. package/dist/lib/browser/{app-graph-builder-XSEOKJLG.mjs → app-graph-builder-3C43MLCD.mjs} +25 -36
  13. package/dist/lib/browser/app-graph-builder-3C43MLCD.mjs.map +7 -0
  14. package/dist/lib/browser/blueprint-definition-VHFSRTEJ.mjs +12 -0
  15. package/dist/lib/browser/blueprint-definition-VHFSRTEJ.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-EZUSNS2J.mjs +19 -0
  17. package/dist/lib/browser/chunk-EZUSNS2J.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-GLWD66TA.mjs +161 -0
  19. package/dist/lib/browser/chunk-GLWD66TA.mjs.map +7 -0
  20. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  21. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-O4LUJEDV.mjs +20 -0
  23. package/dist/lib/browser/{chunk-FDCJSQYF.mjs.map → chunk-O4LUJEDV.mjs.map} +2 -2
  24. package/dist/lib/browser/chunk-PL4O4ZJU.mjs +1974 -0
  25. package/dist/lib/browser/chunk-PL4O4ZJU.mjs.map +7 -0
  26. package/dist/lib/browser/chunk-PPJAIE2T.mjs +299 -0
  27. package/dist/lib/browser/chunk-PPJAIE2T.mjs.map +7 -0
  28. package/dist/lib/browser/chunk-PQI3MGDN.mjs +169 -0
  29. package/dist/lib/browser/chunk-PQI3MGDN.mjs.map +7 -0
  30. package/dist/lib/browser/chunk-R6LRGW3I.mjs +216 -0
  31. package/dist/lib/browser/chunk-R6LRGW3I.mjs.map +7 -0
  32. package/dist/lib/browser/chunk-SMIVXXAI.mjs +202 -0
  33. package/dist/lib/browser/chunk-SMIVXXAI.mjs.map +7 -0
  34. package/dist/lib/browser/compute-runtime-X6IREJN3.mjs +155 -0
  35. package/dist/lib/browser/compute-runtime-X6IREJN3.mjs.map +7 -0
  36. package/dist/lib/browser/edge-model-resolver-JNEB355N.mjs +22 -0
  37. package/dist/lib/browser/edge-model-resolver-JNEB355N.mjs.map +7 -0
  38. package/dist/lib/browser/index.mjs +148 -62
  39. package/dist/lib/browser/index.mjs.map +4 -4
  40. package/dist/lib/browser/intent-resolver-I6M3ZDAS.mjs +112 -0
  41. package/dist/lib/browser/intent-resolver-I6M3ZDAS.mjs.map +7 -0
  42. package/dist/lib/browser/local-model-resolver-EUXSRZ7X.mjs +21 -0
  43. package/dist/lib/browser/local-model-resolver-EUXSRZ7X.mjs.map +7 -0
  44. package/dist/lib/browser/meta.json +1 -1
  45. package/dist/lib/browser/{react-surface-3GYEHQRP.mjs → react-surface-WNLA2636.mjs} +25 -66
  46. package/dist/lib/browser/react-surface-WNLA2636.mjs.map +7 -0
  47. package/dist/lib/browser/{settings-5GTTCVGD.mjs → settings-36V3VUMW.mjs} +6 -5
  48. package/dist/lib/{node-esm/settings-J2EXEM5H.mjs.map → browser/settings-36V3VUMW.mjs.map} +1 -1
  49. package/dist/lib/browser/state-AINRYS5W.mjs +21 -0
  50. package/dist/lib/browser/state-AINRYS5W.mjs.map +7 -0
  51. package/dist/lib/browser/toolkit-Y5OYX5PO.mjs +191 -0
  52. package/dist/lib/browser/toolkit-Y5OYX5PO.mjs.map +7 -0
  53. package/dist/lib/browser/types/index.mjs +7 -4
  54. package/dist/lib/node-esm/{BlueprintContainer-RGTMNLNX.mjs → BlueprintContainer-X4MRBKDR.mjs} +4 -3
  55. package/dist/lib/{browser/BlueprintContainer-IZ4AK5EO.mjs.map → node-esm/BlueprintContainer-X4MRBKDR.mjs.map} +1 -1
  56. package/dist/lib/node-esm/ChatCompanion-PUAFRIEC.mjs +127 -0
  57. package/dist/lib/node-esm/ChatCompanion-PUAFRIEC.mjs.map +7 -0
  58. package/dist/lib/node-esm/{ChatContainer-W3W6FWV3.mjs → ChatContainer-EZZF7RSQ.mjs} +34 -13
  59. package/dist/lib/node-esm/ChatContainer-EZZF7RSQ.mjs.map +7 -0
  60. package/dist/lib/node-esm/{ChatDialog-QW4JRKVO.mjs → ChatDialog-PTQLZNJU.mjs} +28 -12
  61. package/dist/lib/node-esm/ChatDialog-PTQLZNJU.mjs.map +7 -0
  62. package/dist/lib/node-esm/{SequenceContainer-RQQH5XOC.mjs → SequenceContainer-UXOVZPZO.mjs} +5 -17
  63. package/dist/lib/node-esm/SequenceContainer-UXOVZPZO.mjs.map +7 -0
  64. package/dist/lib/node-esm/ai-service-XUMZVFCK.mjs +23 -0
  65. package/dist/lib/node-esm/ai-service-XUMZVFCK.mjs.map +7 -0
  66. package/dist/lib/node-esm/{app-graph-builder-PANCJUHV.mjs → app-graph-builder-NM3JDLQ2.mjs} +25 -36
  67. package/dist/lib/node-esm/app-graph-builder-NM3JDLQ2.mjs.map +7 -0
  68. package/dist/lib/node-esm/blueprint-definition-4E6XTLVN.mjs +13 -0
  69. package/dist/lib/node-esm/blueprint-definition-4E6XTLVN.mjs.map +7 -0
  70. package/dist/lib/node-esm/chunk-4WLFSXZG.mjs +170 -0
  71. package/dist/lib/node-esm/chunk-4WLFSXZG.mjs.map +7 -0
  72. package/dist/lib/node-esm/chunk-7YOGZI66.mjs +203 -0
  73. package/dist/lib/node-esm/chunk-7YOGZI66.mjs.map +7 -0
  74. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  75. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  76. package/dist/lib/node-esm/chunk-LVTG5JTW.mjs +217 -0
  77. package/dist/lib/node-esm/chunk-LVTG5JTW.mjs.map +7 -0
  78. package/dist/lib/node-esm/chunk-QG2KT3AT.mjs +163 -0
  79. package/dist/lib/node-esm/chunk-QG2KT3AT.mjs.map +7 -0
  80. package/dist/lib/node-esm/chunk-VFY2JG62.mjs +22 -0
  81. package/dist/lib/node-esm/{chunk-QN2H2EHV.mjs.map → chunk-VFY2JG62.mjs.map} +2 -2
  82. package/dist/lib/node-esm/chunk-VH3LTD76.mjs +300 -0
  83. package/dist/lib/node-esm/chunk-VH3LTD76.mjs.map +7 -0
  84. package/dist/lib/node-esm/chunk-XD4CDA4R.mjs +20 -0
  85. package/dist/lib/node-esm/chunk-XD4CDA4R.mjs.map +7 -0
  86. package/dist/lib/node-esm/chunk-ZIDP7HBI.mjs +1975 -0
  87. package/dist/lib/node-esm/chunk-ZIDP7HBI.mjs.map +7 -0
  88. package/dist/lib/node-esm/compute-runtime-NRHLLTSC.mjs +156 -0
  89. package/dist/lib/node-esm/compute-runtime-NRHLLTSC.mjs.map +7 -0
  90. package/dist/lib/node-esm/edge-model-resolver-UE5TLLJZ.mjs +23 -0
  91. package/dist/lib/node-esm/edge-model-resolver-UE5TLLJZ.mjs.map +7 -0
  92. package/dist/lib/node-esm/index.mjs +148 -62
  93. package/dist/lib/node-esm/index.mjs.map +4 -4
  94. package/dist/lib/node-esm/intent-resolver-VIINHFMT.mjs +113 -0
  95. package/dist/lib/node-esm/intent-resolver-VIINHFMT.mjs.map +7 -0
  96. package/dist/lib/node-esm/local-model-resolver-JBEFVVZA.mjs +22 -0
  97. package/dist/lib/node-esm/local-model-resolver-JBEFVVZA.mjs.map +7 -0
  98. package/dist/lib/node-esm/meta.json +1 -1
  99. package/dist/lib/node-esm/{react-surface-QDQWJ7FZ.mjs → react-surface-GP3LU6DX.mjs} +25 -66
  100. package/dist/lib/node-esm/react-surface-GP3LU6DX.mjs.map +7 -0
  101. package/dist/lib/node-esm/{settings-J2EXEM5H.mjs → settings-7ZCZ6AS5.mjs} +6 -5
  102. package/dist/lib/{browser/settings-5GTTCVGD.mjs.map → node-esm/settings-7ZCZ6AS5.mjs.map} +1 -1
  103. package/dist/lib/node-esm/state-EQS5KP6M.mjs +22 -0
  104. package/dist/lib/node-esm/state-EQS5KP6M.mjs.map +7 -0
  105. package/dist/lib/node-esm/toolkit-2F2OL6WB.mjs +192 -0
  106. package/dist/lib/node-esm/toolkit-2F2OL6WB.mjs.map +7 -0
  107. package/dist/lib/node-esm/types/index.mjs +7 -4
  108. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  109. package/dist/types/src/capabilities/ai-service.d.ts +5 -0
  110. package/dist/types/src/capabilities/ai-service.d.ts.map +1 -0
  111. package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
  112. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  113. package/dist/types/src/capabilities/blueprint-definition.d.ts +7 -0
  114. package/dist/types/src/capabilities/blueprint-definition.d.ts.map +1 -0
  115. package/dist/types/src/capabilities/capabilities.d.ts +32 -0
  116. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
  117. package/dist/types/src/capabilities/compute-runtime.d.ts +5 -0
  118. package/dist/types/src/capabilities/compute-runtime.d.ts.map +1 -0
  119. package/dist/types/src/capabilities/edge-model-resolver.d.ts +4 -0
  120. package/dist/types/src/capabilities/edge-model-resolver.d.ts.map +1 -0
  121. package/dist/types/src/capabilities/index.d.ts +12 -3
  122. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  123. package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
  124. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  125. package/dist/types/src/capabilities/local-model-resolver.d.ts +10 -0
  126. package/dist/types/src/capabilities/local-model-resolver.d.ts.map +1 -0
  127. package/dist/types/src/capabilities/react-surface.d.ts +1 -1
  128. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  129. package/dist/types/src/capabilities/settings.d.ts +1 -1
  130. package/dist/types/src/capabilities/state.d.ts +4 -0
  131. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  132. package/dist/types/src/capabilities/toolkit.d.ts +4 -0
  133. package/dist/types/src/capabilities/toolkit.d.ts.map +1 -0
  134. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  135. package/dist/types/src/components/Chat/Chat.d.ts +20 -17
  136. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -1
  137. package/dist/types/src/components/Chat/events.d.ts +5 -0
  138. package/dist/types/src/components/Chat/events.d.ts.map +1 -1
  139. package/dist/types/src/components/ChatCompanion.d.ts +13 -0
  140. package/dist/types/src/components/ChatCompanion.d.ts.map +1 -0
  141. package/dist/types/src/components/ChatContainer.d.ts +4 -4
  142. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  143. package/dist/types/src/components/ChatDialog.d.ts.map +1 -1
  144. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts +7 -0
  145. package/dist/types/src/components/ChatProgress/ChatProgress.d.ts.map +1 -0
  146. package/dist/types/src/components/ChatProgress/index.d.ts +2 -0
  147. package/dist/types/src/components/ChatProgress/index.d.ts.map +1 -0
  148. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -1
  149. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts +20 -0
  150. package/dist/types/src/components/ChatPrompt/ChatOptions.d.ts.map +1 -0
  151. package/dist/types/src/components/ChatPrompt/ChatPresets.d.ts.map +1 -1
  152. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +4 -5
  153. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -1
  154. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts +6 -4
  155. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts.map +1 -1
  156. package/dist/types/src/components/ChatPrompt/index.d.ts +1 -1
  157. package/dist/types/src/components/ChatPrompt/index.d.ts.map +1 -1
  158. package/dist/types/src/components/ChatThread/ChatThread.d.ts +10 -7
  159. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -1
  160. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +115 -32
  161. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -1
  162. package/dist/types/src/components/ChatThread/Link.d.ts +9 -0
  163. package/dist/types/src/components/ChatThread/Link.d.ts.map +1 -0
  164. package/dist/types/src/components/ChatThread/reducers.d.ts +40 -0
  165. package/dist/types/src/components/ChatThread/reducers.d.ts.map +1 -0
  166. package/dist/types/src/components/ChatThread/registry.d.ts +11 -0
  167. package/dist/types/src/components/ChatThread/registry.d.ts.map +1 -0
  168. package/dist/types/src/components/ChatThread/sync.d.ts +36 -0
  169. package/dist/types/src/components/ChatThread/sync.d.ts.map +1 -0
  170. package/dist/types/src/components/ChatThread/sync.test.d.ts +2 -0
  171. package/dist/types/src/components/ChatThread/sync.test.d.ts.map +1 -0
  172. package/dist/types/src/components/PromptSettings.d.ts.map +1 -1
  173. package/dist/types/src/components/SequenceContainer.d.ts.map +1 -1
  174. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts.map +1 -1
  175. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts +261 -2
  176. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts.map +1 -1
  177. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +0 -5
  178. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  179. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +261 -6
  180. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  181. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  182. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +258 -1
  183. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  184. package/dist/types/src/components/TemplateEditor/handlebars-extension.d.ts +12 -0
  185. package/dist/types/src/components/TemplateEditor/handlebars-extension.d.ts.map +1 -0
  186. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts +19 -0
  187. package/dist/types/src/components/ToolBlock/ToolBlock.d.ts.map +1 -0
  188. package/dist/types/src/components/ToolBlock/ToolBlockWidget.d.ts +2 -0
  189. package/dist/types/src/components/ToolBlock/ToolBlockWidget.d.ts.map +1 -0
  190. package/dist/types/src/components/ToolBlock/index.d.ts +3 -0
  191. package/dist/types/src/components/ToolBlock/index.d.ts.map +1 -0
  192. package/dist/types/src/components/Toolbar/Toolbar.d.ts +5 -0
  193. package/dist/types/src/components/Toolbar/Toolbar.d.ts.map +1 -0
  194. package/dist/types/src/components/Toolbar/index.d.ts +2 -0
  195. package/dist/types/src/components/Toolbar/index.d.ts.map +1 -0
  196. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts +11 -0
  197. package/dist/types/src/components/Toolbar/useChatToolbarActions.d.ts.map +1 -0
  198. package/dist/types/src/components/Toolbox/Toolbox.d.ts +4 -9
  199. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  200. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +262 -4
  201. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  202. package/dist/types/src/components/index.d.ts +4 -1
  203. package/dist/types/src/components/index.d.ts.map +1 -1
  204. package/dist/types/src/events.d.ts +1 -1
  205. package/dist/types/src/events.d.ts.map +1 -1
  206. package/dist/types/src/execution-graph/execution-graph.d.ts +21 -0
  207. package/dist/types/src/execution-graph/execution-graph.d.ts.map +1 -0
  208. package/dist/types/src/execution-graph/index.d.ts +2 -0
  209. package/dist/types/src/execution-graph/index.d.ts.map +1 -0
  210. package/dist/types/src/functions/analysis.d.ts +5 -0
  211. package/dist/types/src/functions/analysis.d.ts.map +1 -0
  212. package/dist/types/src/functions/index.d.ts +4 -0
  213. package/dist/types/src/functions/index.d.ts.map +1 -0
  214. package/dist/types/src/functions/list.d.ts +10 -0
  215. package/dist/types/src/functions/list.d.ts.map +1 -0
  216. package/dist/types/src/functions/load.d.ts +8 -0
  217. package/dist/types/src/functions/load.d.ts.map +1 -0
  218. package/dist/types/src/hooks/index.d.ts +9 -3
  219. package/dist/types/src/hooks/index.d.ts.map +1 -1
  220. package/dist/types/src/hooks/useBlueprintRegistry.d.ts +24 -0
  221. package/dist/types/src/hooks/useBlueprintRegistry.d.ts.map +1 -0
  222. package/dist/types/src/hooks/useChatProcessor.d.ts +8 -21
  223. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  224. package/dist/types/src/hooks/useChatServices.d.ts +5 -6
  225. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -1
  226. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts +8 -0
  227. package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts.map +1 -0
  228. package/dist/types/src/hooks/useContextBinder.d.ts +4 -0
  229. package/dist/types/src/hooks/useContextBinder.d.ts.map +1 -0
  230. package/dist/types/src/hooks/useContextObjects.d.ts +15 -0
  231. package/dist/types/src/hooks/useContextObjects.d.ts.map +1 -0
  232. package/dist/types/src/hooks/useExecutionGraph.d.ts +6 -0
  233. package/dist/types/src/hooks/useExecutionGraph.d.ts.map +1 -0
  234. package/dist/types/src/hooks/useFlush.d.ts +6 -0
  235. package/dist/types/src/hooks/useFlush.d.ts.map +1 -0
  236. package/dist/types/src/hooks/useItemTypes.d.ts +4 -0
  237. package/dist/types/src/hooks/useItemTypes.d.ts.map +1 -0
  238. package/dist/types/src/hooks/useOnline.d.ts +3 -0
  239. package/dist/types/src/hooks/useOnline.d.ts.map +1 -0
  240. package/dist/types/src/hooks/usePresets.d.ts +7 -0
  241. package/dist/types/src/hooks/usePresets.d.ts.map +1 -0
  242. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -1
  243. package/dist/types/src/processor/index.d.ts +3 -0
  244. package/dist/types/src/processor/index.d.ts.map +1 -0
  245. package/dist/types/src/{hooks → processor}/presets.d.ts +2 -2
  246. package/dist/types/src/processor/presets.d.ts.map +1 -0
  247. package/dist/types/src/processor/processor.d.ts +73 -0
  248. package/dist/types/src/processor/processor.d.ts.map +1 -0
  249. package/dist/types/src/processor/processor.test.d.ts +2 -0
  250. package/dist/types/src/processor/processor.test.d.ts.map +1 -0
  251. package/dist/types/src/stories/Chat.stories.d.ts +25 -202
  252. package/dist/types/src/stories/Chat.stories.d.ts.map +1 -1
  253. package/dist/types/src/stories/components/BlueprintContainer.d.ts +4 -0
  254. package/dist/types/src/stories/components/BlueprintContainer.d.ts.map +1 -0
  255. package/dist/types/src/stories/components/ChatContainer.d.ts +4 -0
  256. package/dist/types/src/stories/components/ChatContainer.d.ts.map +1 -0
  257. package/dist/types/src/stories/components/ChessContainer.d.ts +4 -0
  258. package/dist/types/src/stories/components/ChessContainer.d.ts.map +1 -0
  259. package/dist/types/src/stories/components/CommentsContainer.d.ts +4 -0
  260. package/dist/types/src/stories/components/CommentsContainer.d.ts.map +1 -0
  261. package/dist/types/src/stories/components/DebugCard.d.ts +8 -0
  262. package/dist/types/src/stories/components/DebugCard.d.ts.map +1 -0
  263. package/dist/types/src/stories/components/GraphContainer.d.ts +6 -0
  264. package/dist/types/src/stories/components/GraphContainer.d.ts.map +1 -0
  265. package/dist/types/src/stories/components/InvocationsContainer.d.ts +4 -0
  266. package/dist/types/src/stories/components/InvocationsContainer.d.ts.map +1 -0
  267. package/dist/types/src/stories/components/LoggingContainer.d.ts +7 -0
  268. package/dist/types/src/stories/components/LoggingContainer.d.ts.map +1 -0
  269. package/dist/types/src/stories/components/MessageContainer.d.ts +4 -0
  270. package/dist/types/src/stories/components/MessageContainer.d.ts.map +1 -0
  271. package/dist/types/src/stories/components/PromptContainer.d.ts +6 -0
  272. package/dist/types/src/stories/components/PromptContainer.d.ts.map +1 -0
  273. package/dist/types/src/stories/components/ResearchInputStack.d.ts +4 -0
  274. package/dist/types/src/stories/components/ResearchInputStack.d.ts.map +1 -0
  275. package/dist/types/src/stories/components/ResearchOutputStack.d.ts +4 -0
  276. package/dist/types/src/stories/components/ResearchOutputStack.d.ts.map +1 -0
  277. package/dist/types/src/stories/components/TasksContainer.d.ts +4 -0
  278. package/dist/types/src/stories/components/TasksContainer.d.ts.map +1 -0
  279. package/dist/types/src/stories/components/TokenManagerContainer.d.ts +3 -0
  280. package/dist/types/src/stories/components/TokenManagerContainer.d.ts.map +1 -0
  281. package/dist/types/src/stories/components/TriggersContainer.d.ts +14 -0
  282. package/dist/types/src/stories/components/TriggersContainer.d.ts.map +1 -0
  283. package/dist/types/src/stories/components/index.d.ts +16 -0
  284. package/dist/types/src/stories/components/index.d.ts.map +1 -0
  285. package/dist/types/src/stories/components/types.d.ts +7 -0
  286. package/dist/types/src/stories/components/types.d.ts.map +1 -0
  287. package/dist/types/src/stories/testing/data.d.ts +9 -0
  288. package/dist/types/src/stories/testing/data.d.ts.map +1 -0
  289. package/dist/types/src/stories/testing/index.d.ts +3 -0
  290. package/dist/types/src/stories/testing/index.d.ts.map +1 -0
  291. package/dist/types/src/stories/testing/schema.d.ts +7 -0
  292. package/dist/types/src/stories/testing/schema.d.ts.map +1 -0
  293. package/dist/types/src/stories/testing/testing.d.ts +48 -0
  294. package/dist/types/src/stories/testing/testing.d.ts.map +1 -0
  295. package/dist/types/src/testing/index.d.ts +3 -1
  296. package/dist/types/src/testing/index.d.ts.map +1 -1
  297. package/dist/types/src/testing/test-data.d.ts +14 -0
  298. package/dist/types/src/testing/test-data.d.ts.map +1 -0
  299. package/dist/types/src/testing/test-functions.d.ts +5 -2
  300. package/dist/types/src/testing/test-functions.d.ts.map +1 -1
  301. package/dist/types/src/testing/test-generator.d.ts +7 -0
  302. package/dist/types/src/testing/test-generator.d.ts.map +1 -0
  303. package/dist/types/src/testing/test-sequence.d.ts +0 -4
  304. package/dist/types/src/testing/test-sequence.d.ts.map +1 -1
  305. package/dist/types/src/translations.d.ts +28 -12
  306. package/dist/types/src/translations.d.ts.map +1 -1
  307. package/dist/types/src/types/Assistant.d.ts +42 -0
  308. package/dist/types/src/types/Assistant.d.ts.map +1 -0
  309. package/dist/types/src/types/AssistantAction.d.ts +107 -0
  310. package/dist/types/src/types/AssistantAction.d.ts.map +1 -0
  311. package/dist/types/src/types/defs.d.ts +2 -0
  312. package/dist/types/src/types/defs.d.ts.map +1 -0
  313. package/dist/types/src/types/index.d.ts +3 -1
  314. package/dist/types/src/types/index.d.ts.map +1 -1
  315. package/dist/types/src/types/service.d.ts +6 -3
  316. package/dist/types/src/types/service.d.ts.map +1 -1
  317. package/dist/types/tsconfig.tsbuildinfo +1 -1
  318. package/package.json +108 -86
  319. package/src/AssistantPlugin.tsx +61 -17
  320. package/src/capabilities/ai-service.ts +28 -0
  321. package/src/capabilities/app-graph-builder.ts +41 -48
  322. package/src/capabilities/blueprint-definition.ts +58 -0
  323. package/src/capabilities/capabilities.ts +71 -0
  324. package/src/capabilities/compute-runtime.ts +124 -0
  325. package/src/capabilities/edge-model-resolver.ts +27 -0
  326. package/src/capabilities/index.ts +10 -0
  327. package/src/capabilities/intent-resolver.ts +45 -23
  328. package/src/capabilities/local-model-resolver.ts +32 -0
  329. package/src/capabilities/react-surface.tsx +10 -57
  330. package/src/capabilities/state.ts +20 -0
  331. package/src/capabilities/toolkit.ts +163 -0
  332. package/src/components/AssistantSettings/AssistantSettings.tsx +83 -76
  333. package/src/components/Chat/Chat.tsx +175 -174
  334. package/src/components/Chat/events.ts +7 -0
  335. package/src/components/ChatCompanion.tsx +111 -0
  336. package/src/components/ChatContainer.tsx +19 -13
  337. package/src/components/ChatDialog.tsx +18 -14
  338. package/src/components/ChatProgress/ChatProgress.tsx +68 -0
  339. package/src/components/ChatProgress/index.ts +5 -0
  340. package/src/components/ChatPrompt/ChatActions.tsx +10 -24
  341. package/src/components/ChatPrompt/ChatOptions.tsx +233 -0
  342. package/src/components/ChatPrompt/ChatPresets.tsx +1 -0
  343. package/src/components/ChatPrompt/ChatReferences.tsx +31 -36
  344. package/src/components/ChatPrompt/ChatStatusIndicator.tsx +25 -22
  345. package/src/components/ChatPrompt/index.ts +1 -1
  346. package/src/components/ChatThread/ChatThread.stories.tsx +97 -110
  347. package/src/components/ChatThread/ChatThread.tsx +65 -29
  348. package/src/components/ChatThread/Link.tsx +26 -0
  349. package/src/components/ChatThread/reducers.ts +151 -0
  350. package/src/components/ChatThread/registry.tsx +189 -0
  351. package/src/components/ChatThread/sync.test.ts +81 -0
  352. package/src/components/ChatThread/sync.ts +113 -0
  353. package/src/components/PromptSettings.tsx +1 -0
  354. package/src/components/SequenceContainer.tsx +27 -28
  355. package/src/components/SequenceEditor/SequenceEditor.stories.tsx +5 -4
  356. package/src/components/SequenceEditor/SequenceEditor.tsx +1 -1
  357. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +25 -12
  358. package/src/components/TemplateEditor/TemplateEditor.tsx +14 -47
  359. package/src/components/TemplateEditor/TemplateForm.stories.tsx +12 -5
  360. package/src/components/TemplateEditor/TemplateForm.tsx +3 -1
  361. package/src/components/TemplateEditor/handlebars-extension.ts +165 -0
  362. package/src/components/ToolBlock/ToolBlock.tsx +152 -0
  363. package/src/components/ToolBlock/ToolBlockWidget.tsx +5 -0
  364. package/src/components/ToolBlock/index.ts +6 -0
  365. package/src/components/Toolbar/Toolbar.tsx +21 -0
  366. package/src/components/Toolbar/index.ts +5 -0
  367. package/src/components/Toolbar/useChatToolbarActions.ts +126 -0
  368. package/src/components/Toolbox/Toolbox.stories.tsx +10 -16
  369. package/src/components/Toolbox/Toolbox.tsx +21 -51
  370. package/src/components/index.ts +3 -4
  371. package/src/events.ts +2 -2
  372. package/src/execution-graph/execution-graph.ts +211 -0
  373. package/src/execution-graph/index.ts +5 -0
  374. package/src/functions/analysis.ts +20 -0
  375. package/src/functions/index.ts +7 -0
  376. package/src/functions/list.ts +46 -0
  377. package/src/functions/load.ts +42 -0
  378. package/src/hooks/index.ts +9 -4
  379. package/src/hooks/useBlueprintRegistry.ts +80 -0
  380. package/src/hooks/useChatProcessor.ts +21 -98
  381. package/src/hooks/useChatServices.ts +29 -48
  382. package/src/hooks/useComputeRuntimeCallback.ts +25 -0
  383. package/src/hooks/useContextBinder.ts +18 -0
  384. package/src/hooks/useContextObjects.ts +58 -0
  385. package/src/hooks/useExecutionGraph.ts +20 -0
  386. package/src/hooks/useFlush.ts +35 -0
  387. package/src/hooks/useItemTypes.ts +37 -0
  388. package/src/hooks/useOnline.ts +10 -0
  389. package/src/hooks/usePresets.ts +44 -0
  390. package/src/hooks/useReferencesProvider.ts +11 -9
  391. package/src/meta.ts +1 -1
  392. package/src/processor/index.ts +6 -0
  393. package/src/{hooks → processor}/presets.ts +14 -6
  394. package/src/processor/processor.test.ts +77 -0
  395. package/src/processor/processor.ts +302 -0
  396. package/src/queue-logger.ts +10 -10
  397. package/src/stories/Chat.stories.tsx +594 -308
  398. package/src/stories/components/BlueprintContainer.tsx +34 -0
  399. package/src/stories/components/ChatContainer.tsx +74 -0
  400. package/src/stories/components/ChessContainer.tsx +17 -0
  401. package/src/stories/components/CommentsContainer.tsx +25 -0
  402. package/src/stories/components/DebugCard.tsx +61 -0
  403. package/src/stories/components/GraphContainer.tsx +119 -0
  404. package/src/stories/components/InvocationsContainer.tsx +17 -0
  405. package/src/stories/components/LoggingContainer.tsx +33 -0
  406. package/src/stories/components/MessageContainer.tsx +22 -0
  407. package/src/stories/components/PromptContainer.tsx +52 -0
  408. package/src/stories/components/ResearchInputStack.tsx +30 -0
  409. package/src/stories/components/ResearchOutputStack.tsx +29 -0
  410. package/src/stories/components/TasksContainer.tsx +49 -0
  411. package/src/stories/components/TokenManagerContainer.tsx +14 -0
  412. package/src/stories/components/TriggersContainer.tsx +75 -0
  413. package/src/stories/components/index.ts +20 -0
  414. package/src/stories/components/types.ts +11 -0
  415. package/src/stories/testing/data.ts +142 -0
  416. package/src/stories/testing/index.ts +6 -0
  417. package/src/stories/testing/schema.ts +17 -0
  418. package/src/stories/testing/testing.tsx +279 -0
  419. package/src/testing/index.ts +3 -1
  420. package/src/testing/test-data.ts +245 -0
  421. package/src/testing/test-functions.ts +8 -3
  422. package/src/testing/test-generator.ts +257 -0
  423. package/src/testing/test-sequence.ts +2 -27
  424. package/src/translations.ts +31 -12
  425. package/src/types/Assistant.ts +61 -0
  426. package/src/types/AssistantAction.ts +62 -0
  427. package/src/types/defs.ts +5 -0
  428. package/src/types/index.ts +4 -1
  429. package/src/vite-env.d.ts +30 -0
  430. package/dist/lib/browser/ChatContainer-RP3QEXYX.mjs.map +0 -7
  431. package/dist/lib/browser/ChatDialog-ZVLXFHEY.mjs.map +0 -7
  432. package/dist/lib/browser/SequenceContainer-3UDVKWPA.mjs.map +0 -7
  433. package/dist/lib/browser/app-graph-builder-XSEOKJLG.mjs.map +0 -7
  434. package/dist/lib/browser/chunk-63GG6U6D.mjs +0 -2226
  435. package/dist/lib/browser/chunk-63GG6U6D.mjs.map +0 -7
  436. package/dist/lib/browser/chunk-7W7LHTRH.mjs +0 -171
  437. package/dist/lib/browser/chunk-7W7LHTRH.mjs.map +0 -7
  438. package/dist/lib/browser/chunk-FDCJSQYF.mjs +0 -40
  439. package/dist/lib/browser/chunk-KFXSBNZR.mjs +0 -89
  440. package/dist/lib/browser/chunk-KFXSBNZR.mjs.map +0 -7
  441. package/dist/lib/browser/chunk-LERGF5YG.mjs +0 -108
  442. package/dist/lib/browser/chunk-LERGF5YG.mjs.map +0 -7
  443. package/dist/lib/browser/intent-resolver-MV3VSZLS.mjs +0 -75
  444. package/dist/lib/browser/intent-resolver-MV3VSZLS.mjs.map +0 -7
  445. package/dist/lib/browser/react-surface-3GYEHQRP.mjs.map +0 -7
  446. package/dist/lib/node-esm/ChatContainer-W3W6FWV3.mjs.map +0 -7
  447. package/dist/lib/node-esm/ChatDialog-QW4JRKVO.mjs.map +0 -7
  448. package/dist/lib/node-esm/SequenceContainer-RQQH5XOC.mjs.map +0 -7
  449. package/dist/lib/node-esm/app-graph-builder-PANCJUHV.mjs.map +0 -7
  450. package/dist/lib/node-esm/chunk-BFO3KHYL.mjs +0 -2227
  451. package/dist/lib/node-esm/chunk-BFO3KHYL.mjs.map +0 -7
  452. package/dist/lib/node-esm/chunk-MS3PJARN.mjs +0 -109
  453. package/dist/lib/node-esm/chunk-MS3PJARN.mjs.map +0 -7
  454. package/dist/lib/node-esm/chunk-QN2H2EHV.mjs +0 -41
  455. package/dist/lib/node-esm/chunk-VIIMA3XQ.mjs +0 -90
  456. package/dist/lib/node-esm/chunk-VIIMA3XQ.mjs.map +0 -7
  457. package/dist/lib/node-esm/chunk-Z7PUODRT.mjs +0 -172
  458. package/dist/lib/node-esm/chunk-Z7PUODRT.mjs.map +0 -7
  459. package/dist/lib/node-esm/intent-resolver-3FMC3GHC.mjs +0 -76
  460. package/dist/lib/node-esm/intent-resolver-3FMC3GHC.mjs.map +0 -7
  461. package/dist/lib/node-esm/react-surface-QDQWJ7FZ.mjs.map +0 -7
  462. package/dist/types/src/capability-definitions.d.ts +0 -7
  463. package/dist/types/src/capability-definitions.d.ts.map +0 -1
  464. package/dist/types/src/components/ChatPrompt/ChatOptionsMenu.d.ts +0 -9
  465. package/dist/types/src/components/ChatPrompt/ChatOptionsMenu.d.ts.map +0 -1
  466. package/dist/types/src/components/ChatThread/ChatMessage.d.ts +0 -17
  467. package/dist/types/src/components/ChatThread/ChatMessage.d.ts.map +0 -1
  468. package/dist/types/src/components/ChatThread/ToolBlock.d.ts +0 -19
  469. package/dist/types/src/components/ChatThread/ToolBlock.d.ts.map +0 -1
  470. package/dist/types/src/components/ChatThread/reducer.d.ts +0 -12
  471. package/dist/types/src/components/ChatThread/reducer.d.ts.map +0 -1
  472. package/dist/types/src/hooks/chat-processor.d.ts +0 -86
  473. package/dist/types/src/hooks/chat-processor.d.ts.map +0 -1
  474. package/dist/types/src/hooks/chat-processor.test.d.ts +0 -2
  475. package/dist/types/src/hooks/chat-processor.test.d.ts.map +0 -1
  476. package/dist/types/src/hooks/presets.d.ts.map +0 -1
  477. package/dist/types/src/hooks/useBlueprints.d.ts +0 -9
  478. package/dist/types/src/hooks/useBlueprints.d.ts.map +0 -1
  479. package/dist/types/src/parser/filter-generator.d.ts +0 -4
  480. package/dist/types/src/parser/filter-generator.d.ts.map +0 -1
  481. package/dist/types/src/parser/filter-generator.test.d.ts +0 -2
  482. package/dist/types/src/parser/filter-generator.test.d.ts.map +0 -1
  483. package/dist/types/src/parser/index.d.ts +0 -4
  484. package/dist/types/src/parser/index.d.ts.map +0 -1
  485. package/dist/types/src/parser/query-parser.d.ts +0 -15
  486. package/dist/types/src/parser/query-parser.d.ts.map +0 -1
  487. package/dist/types/src/parser/query-parser.test.d.ts +0 -2
  488. package/dist/types/src/parser/query-parser.test.d.ts.map +0 -1
  489. package/dist/types/src/parser/types.d.ts +0 -24
  490. package/dist/types/src/parser/types.d.ts.map +0 -1
  491. package/dist/types/src/tools/function.d.ts +0 -5
  492. package/dist/types/src/tools/function.d.ts.map +0 -1
  493. package/dist/types/src/tools/index.d.ts +0 -3
  494. package/dist/types/src/tools/index.d.ts.map +0 -1
  495. package/dist/types/src/tools/openapi.d.ts +0 -10
  496. package/dist/types/src/tools/openapi.d.ts.map +0 -1
  497. package/dist/types/src/tools/openapi.test.d.ts +0 -2
  498. package/dist/types/src/tools/openapi.test.d.ts.map +0 -1
  499. package/dist/types/src/types/schema.d.ts +0 -120
  500. package/dist/types/src/types/schema.d.ts.map +0 -1
  501. package/src/capability-definitions.ts +0 -15
  502. package/src/components/ChatPrompt/ChatOptionsMenu.tsx +0 -52
  503. package/src/components/ChatThread/ChatMessage.tsx +0 -268
  504. package/src/components/ChatThread/ToolBlock.tsx +0 -121
  505. package/src/components/ChatThread/reducer.ts +0 -52
  506. package/src/hooks/chat-processor.test.ts +0 -16
  507. package/src/hooks/chat-processor.ts +0 -314
  508. package/src/hooks/useBlueprints.ts +0 -57
  509. package/src/parser/filter-generator.test.ts +0 -32
  510. package/src/parser/filter-generator.ts +0 -81
  511. package/src/parser/index.ts +0 -7
  512. package/src/parser/query-parser.test.ts +0 -139
  513. package/src/parser/query-parser.ts +0 -199
  514. package/src/parser/types.ts +0 -34
  515. package/src/shims.d.ts +0 -8
  516. package/src/tools/function.ts +0 -46
  517. package/src/tools/index.ts +0 -6
  518. package/src/tools/openapi.test.ts +0 -217
  519. package/src/tools/openapi.ts +0 -338
  520. package/src/types/schema.ts +0 -108
  521. package/src/typings.d.ts +0 -9
  522. /package/dist/lib/{node-esm/BlueprintContainer-RGTMNLNX.mjs.map → browser/BlueprintContainer-BFNN6K46.mjs.map} +0 -0
@@ -0,0 +1,299 @@
1
+ import {
2
+ useExecutionGraph
3
+ } from "./chunk-PL4O4ZJU.mjs";
4
+ import {
5
+ LLM_PROVIDERS,
6
+ ServiceType
7
+ } from "./chunk-SMIVXXAI.mjs";
8
+ import {
9
+ meta
10
+ } from "./chunk-O4LUJEDV.mjs";
11
+
12
+ // src/components/AssistantSettings/AssistantSettings.tsx
13
+ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
14
+ import React from "react";
15
+ import { DEFAULT_EDGE_MODELS, DEFAULT_OLLAMA_MODELS } from "@dxos/ai";
16
+ import { Input, Select, useTranslation } from "@dxos/react-ui";
17
+ import { ControlGroup, ControlItemInput, ControlPage, ControlSection } from "@dxos/react-ui-form";
18
+ var DEFAULT_VALUE = "__default";
19
+ var LLM_PROVIDER_LABELS = {
20
+ edge: "DXOS",
21
+ ollama: "Ollama",
22
+ lmstudio: "LM Studio"
23
+ };
24
+ var AssistantSettings = ({ settings }) => {
25
+ var _effect = _useSignals();
26
+ try {
27
+ const { t } = useTranslation(meta.id);
28
+ return /* @__PURE__ */ React.createElement(ControlPage, null, /* @__PURE__ */ React.createElement(ControlSection, {
29
+ title: t("settings title", {
30
+ ns: meta.id
31
+ })
32
+ }, /* @__PURE__ */ React.createElement(ControlGroup, null, /* @__PURE__ */ React.createElement(ControlItemInput, {
33
+ title: t("settings custom prompts label")
34
+ }, /* @__PURE__ */ React.createElement(Input.Switch, {
35
+ checked: !!settings.customPrompts,
36
+ onCheckedChange: (checked) => settings.customPrompts = checked
37
+ })), /* @__PURE__ */ React.createElement(ControlItemInput, {
38
+ title: t("settings llm provider label")
39
+ }, /* @__PURE__ */ React.createElement(Select.Root, {
40
+ value: settings.llmProvider ?? "edge",
41
+ onValueChange: (value) => {
42
+ settings.llmProvider = value === DEFAULT_VALUE ? void 0 : value;
43
+ }
44
+ }, /* @__PURE__ */ React.createElement(Select.TriggerButton, {
45
+ placeholder: t("settings llm provider label")
46
+ }), /* @__PURE__ */ React.createElement(Select.Portal, null, /* @__PURE__ */ React.createElement(Select.Content, null, /* @__PURE__ */ React.createElement(Select.Viewport, null, /* @__PURE__ */ React.createElement(Select.Option, {
47
+ value: DEFAULT_VALUE
48
+ }, t("settings default label")), LLM_PROVIDERS.map((model) => /* @__PURE__ */ React.createElement(Select.Option, {
49
+ key: model,
50
+ value: model
51
+ }, LLM_PROVIDER_LABELS[model]))), /* @__PURE__ */ React.createElement(Select.Arrow, null))))), /* @__PURE__ */ React.createElement(ControlItemInput, {
52
+ title: t("settings edge llm model label")
53
+ }, /* @__PURE__ */ React.createElement(Select.Root, {
54
+ value: settings.edgeModel ?? DEFAULT_VALUE,
55
+ onValueChange: (value) => {
56
+ settings.edgeModel = value === DEFAULT_VALUE ? void 0 : value;
57
+ }
58
+ }, /* @__PURE__ */ React.createElement(Select.TriggerButton, {
59
+ placeholder: t("settings default llm model label")
60
+ }), /* @__PURE__ */ React.createElement(Select.Portal, null, /* @__PURE__ */ React.createElement(Select.Content, null, /* @__PURE__ */ React.createElement(Select.Viewport, null, /* @__PURE__ */ React.createElement(Select.Option, {
61
+ value: DEFAULT_VALUE
62
+ }, t("settings default label")), DEFAULT_EDGE_MODELS.map((model) => /* @__PURE__ */ React.createElement(Select.Option, {
63
+ key: model,
64
+ value: model
65
+ }, model))), /* @__PURE__ */ React.createElement(Select.Arrow, null))))), /* @__PURE__ */ React.createElement(ControlItemInput, {
66
+ title: t("settings ollama llm model label")
67
+ }, /* @__PURE__ */ React.createElement(Select.Root, {
68
+ value: settings.ollamaModel ?? DEFAULT_VALUE,
69
+ onValueChange: (value) => {
70
+ settings.ollamaModel = value === DEFAULT_VALUE ? void 0 : value;
71
+ }
72
+ }, /* @__PURE__ */ React.createElement(Select.TriggerButton, {
73
+ placeholder: t("settings default llm model label")
74
+ }), /* @__PURE__ */ React.createElement(Select.Portal, null, /* @__PURE__ */ React.createElement(Select.Content, null, /* @__PURE__ */ React.createElement(Select.Viewport, null, /* @__PURE__ */ React.createElement(Select.Option, {
75
+ value: DEFAULT_VALUE
76
+ }, t("settings default label")), DEFAULT_OLLAMA_MODELS.map((model) => /* @__PURE__ */ React.createElement(Select.Option, {
77
+ key: model,
78
+ value: model
79
+ }, model))), /* @__PURE__ */ React.createElement(Select.Arrow, null))))))));
80
+ } finally {
81
+ _effect.f();
82
+ }
83
+ };
84
+
85
+ // src/components/ChatProgress/ChatProgress.tsx
86
+ import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
87
+ import React2, { useCallback, useEffect, useMemo, useRef, useState } from "react";
88
+ import { addEventListener } from "@dxos/async";
89
+ import { Flex, ProgressBar, TextCrawl } from "@dxos/react-ui-components";
90
+ var ChatProgress = ({ chat }) => {
91
+ var _effect = _useSignals2();
92
+ try {
93
+ const { commits } = useExecutionGraph(chat.traceQueue?.target, true);
94
+ const nodes = useMemo(() => commits.map((commit) => ({
95
+ id: commit.id,
96
+ message: commit.message
97
+ })), [
98
+ commits
99
+ ]);
100
+ const lines = useMemo(() => commits.map((commit) => commit.message), [
101
+ commits
102
+ ]);
103
+ const [index, setIndex] = useState(void 0);
104
+ const handleSelect = useCallback(({ index: index2 }) => {
105
+ setIndex((current) => {
106
+ return current === index2 ? void 0 : index2;
107
+ });
108
+ }, []);
109
+ const ref = useRef(null);
110
+ useEffect(() => {
111
+ if (!ref.current) {
112
+ return;
113
+ }
114
+ return addEventListener(ref.current, "keydown", (event) => {
115
+ switch (event.key) {
116
+ case "ArrowLeft": {
117
+ setIndex((current) => current === void 0 || current <= 0 ? 0 : current - 1);
118
+ break;
119
+ }
120
+ case "ArrowRight": {
121
+ setIndex((current) => current === void 0 || current >= nodes.length ? nodes.length - 1 : current + 1);
122
+ break;
123
+ }
124
+ }
125
+ });
126
+ }, [
127
+ nodes.length
128
+ ]);
129
+ return /* @__PURE__ */ React2.createElement(Flex, {
130
+ column: true,
131
+ tabIndex: 0,
132
+ ref,
133
+ classNames: "outline-none"
134
+ }, /* @__PURE__ */ React2.createElement(ProgressBar, {
135
+ nodes,
136
+ index,
137
+ onSelect: handleSelect
138
+ }), /* @__PURE__ */ React2.createElement(TextCrawl, {
139
+ lines,
140
+ index,
141
+ autoAdvance: true,
142
+ classNames: "pis-4 text-sm text-subdued"
143
+ }));
144
+ } finally {
145
+ _effect.f();
146
+ }
147
+ };
148
+
149
+ // src/components/PromptSettings.tsx
150
+ import { useSignals as _useSignals3 } from "@preact-signals/safe-react/tracking";
151
+ import React3 from "react";
152
+ import { Toolbar, useTranslation as useTranslation2 } from "@dxos/react-ui";
153
+ var PromptSettings = ({ template }) => {
154
+ var _effect = _useSignals3();
155
+ try {
156
+ const { t } = useTranslation2(meta.id);
157
+ return /* @__PURE__ */ React3.createElement("div", {
158
+ className: "flex flex-col gap-4"
159
+ }, /* @__PURE__ */ React3.createElement("h2", null, t("prompt rules label")), /* @__PURE__ */ React3.createElement(Toolbar.Root, null));
160
+ } finally {
161
+ _effect.f();
162
+ }
163
+ };
164
+
165
+ // src/components/Toolbox/Toolbox.tsx
166
+ import { useSignals as _useSignals4 } from "@preact-signals/safe-react/tracking";
167
+ import React4, { Fragment, useEffect as useEffect2, useState as useState2 } from "react";
168
+ import { FunctionType } from "@dxos/functions";
169
+ import { log } from "@dxos/log";
170
+ import { Filter, useQuery } from "@dxos/react-client/echo";
171
+ import { useTranslation as useTranslation3 } from "@dxos/react-ui";
172
+ import { mx } from "@dxos/react-ui-theme";
173
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-assistant/src/components/Toolbox/Toolbox.tsx";
174
+ var Toolbox = ({ classNames, functions, services, blueprints, activeBlueprints }) => {
175
+ var _effect = _useSignals4();
176
+ try {
177
+ const { t } = useTranslation3(meta.id);
178
+ return /* @__PURE__ */ React4.createElement("div", {
179
+ className: mx("flex flex-col overflow-y-auto box-content", classNames)
180
+ }, blueprints && blueprints.length > 0 && /* @__PURE__ */ React4.createElement(Section, {
181
+ title: "Blueprints",
182
+ items: blueprints.map(({ target }) => ({
183
+ name: target?.name ?? "",
184
+ description: target?.description ?? "",
185
+ subitems: target?.tools.map((toolId) => ({
186
+ name: `\u2219 ${safeToolId(toolId)}`
187
+ }))
188
+ }))
189
+ }), activeBlueprints && activeBlueprints.length > 0 && /* @__PURE__ */ React4.createElement(Section, {
190
+ title: "Blueprints",
191
+ items: activeBlueprints.map(({ target }) => ({
192
+ name: target?.name ?? "",
193
+ description: target?.description ?? "",
194
+ subitems: target?.tools.map((toolId) => ({
195
+ name: `\u2219 ${safeToolId(toolId)}`
196
+ }))
197
+ }))
198
+ }), services && services.length > 0 && /* @__PURE__ */ React4.createElement(Section, {
199
+ title: "Services",
200
+ items: services.map(({ service: { serviceId, name, description } }) => ({
201
+ name: name ?? serviceId,
202
+ description
203
+ }))
204
+ }), functions && functions.length > 0 && /* @__PURE__ */ React4.createElement(Section, {
205
+ title: "Functions",
206
+ items: functions.map(({ name, description }) => ({
207
+ name,
208
+ description
209
+ }))
210
+ }));
211
+ } finally {
212
+ _effect.f();
213
+ }
214
+ };
215
+ var Section = ({ title, items, striped }) => {
216
+ var _effect = _useSignals4();
217
+ try {
218
+ const stripeClassNames = "odd:bg-neutral-50 dark:odd:bg-neutral-800";
219
+ const gridClassNames = "grid grid-cols-[8rem_1fr]";
220
+ const subGridClassNames = mx("col-span-full grid grid-cols-subgrid text-xs px-2", striped && stripeClassNames);
221
+ return /* @__PURE__ */ React4.createElement("div", null, /* @__PURE__ */ React4.createElement("h1", {
222
+ className: "px-2 text-sm"
223
+ }, title), /* @__PURE__ */ React4.createElement("div", {
224
+ className: gridClassNames
225
+ }, items.map(({ name, description, subitems }, i) => /* @__PURE__ */ React4.createElement(Fragment, {
226
+ key: i
227
+ }, name && /* @__PURE__ */ React4.createElement("div", {
228
+ className: subGridClassNames
229
+ }, /* @__PURE__ */ React4.createElement("div", {
230
+ className: "truncate text-primary-500"
231
+ }, name), /* @__PURE__ */ React4.createElement("div", {
232
+ className: "line-clamp-2"
233
+ }, description)), subitems?.map(({ name: name2, description: description2 }, i2) => /* @__PURE__ */ React4.createElement("div", {
234
+ key: i2,
235
+ className: mx(subGridClassNames, striped && stripeClassNames)
236
+ }, /* @__PURE__ */ React4.createElement("div", {
237
+ className: "truncate"
238
+ }, name2), /* @__PURE__ */ React4.createElement("div", {
239
+ className: "line-clamp-3 text-subdued"
240
+ }, description2)))))));
241
+ } finally {
242
+ _effect.f();
243
+ }
244
+ };
245
+ var ToolboxContainer = ({ classNames, space, processor }) => {
246
+ var _effect = _useSignals4();
247
+ try {
248
+ const services = useQuery(space, Filter.type(ServiceType));
249
+ const [serviceTools, setServiceTools] = useState2([]);
250
+ useEffect2(() => {
251
+ log("creating service tools...", {
252
+ services: services.length
253
+ }, {
254
+ F: __dxlog_file,
255
+ L: 117,
256
+ S: void 0,
257
+ C: (f, a) => f(...a)
258
+ });
259
+ queueMicrotask(async () => {
260
+ });
261
+ }, [
262
+ services
263
+ ]);
264
+ const functions = useQuery(space, Filter.type(FunctionType));
265
+ return /* @__PURE__ */ React4.createElement(Toolbox, {
266
+ classNames,
267
+ blueprints: processor?.context.blueprints.value,
268
+ services: serviceTools,
269
+ functions
270
+ });
271
+ } finally {
272
+ _effect.f();
273
+ }
274
+ };
275
+ var safeToolId = (name) => {
276
+ return name.split("_").pop();
277
+ };
278
+
279
+ // src/components/index.ts
280
+ import { lazy } from "react";
281
+ var BlueprintContainer = lazy(() => import("./BlueprintContainer-BFNN6K46.mjs"));
282
+ var ChatCompanion = lazy(() => import("./ChatCompanion-YYYCHZYV.mjs"));
283
+ var ChatContainer = lazy(() => import("./ChatContainer-G6YHR6GJ.mjs"));
284
+ var ChatDialog = lazy(() => import("./ChatDialog-HJ7VDRQO.mjs"));
285
+ var SequenceContainer = lazy(() => import("./SequenceContainer-TF5QNXYM.mjs"));
286
+
287
+ export {
288
+ AssistantSettings,
289
+ ChatProgress,
290
+ PromptSettings,
291
+ Toolbox,
292
+ ToolboxContainer,
293
+ BlueprintContainer,
294
+ ChatCompanion,
295
+ ChatContainer,
296
+ ChatDialog,
297
+ SequenceContainer
298
+ };
299
+ //# sourceMappingURL=chunk-PPJAIE2T.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/AssistantSettings/AssistantSettings.tsx", "../../../src/components/ChatProgress/ChatProgress.tsx", "../../../src/components/PromptSettings.tsx", "../../../src/components/Toolbox/Toolbox.tsx", "../../../src/components/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DEFAULT_EDGE_MODELS, DEFAULT_OLLAMA_MODELS } from '@dxos/ai';\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { ControlGroup, ControlItemInput, ControlPage, ControlSection } from '@dxos/react-ui-form';\n\nimport { meta } from '../../meta';\nimport { type Assistant, LLM_PROVIDERS } from '../../types';\n\n// TODO(burdon): Factor out default Selector.\nconst DEFAULT_VALUE = '__default';\n\nconst LLM_PROVIDER_LABELS = {\n edge: 'DXOS',\n ollama: 'Ollama',\n lmstudio: 'LM Studio',\n} as const;\n\nexport const AssistantSettings = ({ settings }: { settings: Assistant.Settings }) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <ControlPage>\n <ControlSection title={t('settings title', { ns: meta.id })}>\n <ControlGroup>\n <ControlItemInput title={t('settings custom prompts label')}>\n <Input.Switch\n checked={!!settings.customPrompts}\n onCheckedChange={(checked) => (settings.customPrompts = checked)}\n />\n </ControlItemInput>\n\n <ControlItemInput title={t('settings llm provider label')}>\n <Select.Root\n value={settings.llmProvider ?? 'edge'}\n onValueChange={(value) => {\n settings.llmProvider = value === DEFAULT_VALUE ? undefined : (value as any);\n }}\n >\n <Select.TriggerButton placeholder={t('settings llm provider label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {LLM_PROVIDERS.map((model) => (\n <Select.Option key={model} value={model}>\n {LLM_PROVIDER_LABELS[model]}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </ControlItemInput>\n\n <ControlItemInput title={t('settings edge llm model label')}>\n <Select.Root\n value={settings.edgeModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n settings.edgeModel = value === DEFAULT_VALUE ? undefined : value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_EDGE_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </ControlItemInput>\n\n <ControlItemInput title={t('settings ollama llm model label')}>\n <Select.Root\n value={settings.ollamaModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n settings.ollamaModel = value === DEFAULT_VALUE ? undefined : value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_OLLAMA_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </ControlItemInput>\n </ControlGroup>\n </ControlSection>\n </ControlPage>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';\n\nimport { addEventListener } from '@dxos/async';\nimport { Flex, ProgressBar, type ProgressBarProps, TextCrawl } from '@dxos/react-ui-components';\n\nimport { useExecutionGraph } from '../../hooks';\nimport { type Assistant } from '../../types';\n\n// TODO(burdon): Reset after each session.\n// TODO(burdon): Show after delay.\n// TODO(burdon): Test with errors.\n// TODO(burdon): Filter out empty trace messages.\n\n// {\n// \"id\": \"01K3TE3C2VAXETP500QKDHK3C4_block_3\",\n// \"branch\": \"main\",\n// \"parents\": [],\n// \"icon\": \"ph--robot--regular\",\n// \"message\": \"\\n\"\n// }\n\nexport type ChatProgressProps = {\n chat: Assistant.Chat;\n};\n\nexport const ChatProgress = ({ chat }: ChatProgressProps) => {\n const { commits } = useExecutionGraph(chat.traceQueue?.target, true);\n const nodes = useMemo(() => commits.map((commit) => ({ id: commit.id, message: commit.message })), [commits]);\n const lines = useMemo(() => commits.map((commit) => commit.message), [commits]);\n\n const [index, setIndex] = useState<number | undefined>(undefined);\n const handleSelect = useCallback<NonNullable<ProgressBarProps['onSelect']>>(({ index }) => {\n setIndex((current) => {\n return current === index ? undefined : index;\n });\n }, []);\n\n const ref = useRef<HTMLDivElement>(null);\n useEffect(() => {\n if (!ref.current) {\n return;\n }\n\n return addEventListener(ref.current, 'keydown', (event) => {\n switch (event.key) {\n case 'ArrowLeft': {\n setIndex((current) => (current === undefined || current <= 0 ? 0 : current - 1));\n break;\n }\n case 'ArrowRight': {\n setIndex((current) => (current === undefined || current >= nodes.length ? nodes.length - 1 : current + 1));\n break;\n }\n }\n });\n }, [nodes.length]);\n\n return (\n <Flex column tabIndex={0} ref={ref} classNames='outline-none'>\n <ProgressBar nodes={nodes} index={index} onSelect={handleSelect} />\n <TextCrawl lines={lines} index={index} autoAdvance classNames='pis-4 text-sm text-subdued' />\n </Flex>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Template } from '@dxos/blueprints';\nimport { Toolbar, useTranslation } from '@dxos/react-ui';\n\nimport { meta } from '../meta';\n\nexport const PromptSettings = ({ template }: { template: Template.Template }) => {\n const { t } = useTranslation(meta.id);\n\n // const handleKindChange = useCallback(\n // (value: string) => {\n // const kind = Match.type<string>().pipe(\n // Match.withReturnType<Schema.Schema.Type<typeof Template.Template>>(),\n // Match.when('always', () => ({ include: 'always' })),\n // Match.when('schema-matching', () => ({ include: 'schema-matching', typename: '' })),\n // Match.when('automatically', () => ({ include: 'automatically', description: '' })),\n // Match.orElse(() => ({ include: 'manual' })),\n // )(value);\n //\n // template.kind = kind;\n // },\n // [template],\n // );\n\n // const handleTypenameChange = useCallback(\n // debounce((event: ChangeEvent<HTMLInputElement>) => {\n // if (template.kind.include === 'schema-matching') {\n // template.kind.typename = event.target.value;\n // }\n // }, 300),\n // [template.kind.include],\n // );\n\n // const handleDescriptionChange = useCallback(\n // debounce((event: ChangeEvent<HTMLInputElement>) => {\n // if (template.kind.include === 'automatically') {\n // template.kind.description = event.target.value;\n // }\n // }, 300),\n // [template.kind.include],\n // );\n\n return (\n <div className='flex flex-col gap-4'>\n <h2>{t('prompt rules label')}</h2>\n <Toolbar.Root>\n {/* <Select.Root value={template.kind.include} onValueChange={handleKindChange}>\n <Toolbar.Button asChild>\n <Select.TriggerButton />\n </Toolbar.Button>\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {Template.Kinds.map((kind) => (\n <Select.Option key={kind} value={kind}>\n {kind}\n </Select.Option>\n ))}\n </Select.Viewport>\n <Select.Arrow />\n </Select.Content>\n </Select.Portal>\n </Select.Root> */}\n {/* {template.kind.include === 'schema-matching' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('typename placeholder')}\n defaultValue={template.kind.typename}\n onChange={handleTypenameChange}\n />\n </Input.Root>\n )} */}\n {/* {template.kind.include === 'automatically' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('description placeholder')}\n defaultValue={template.kind.description}\n onChange={handleDescriptionChange}\n />\n </Input.Root>\n )} */}\n </Toolbar.Root>\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type FC, Fragment, useEffect, useState } from 'react';\n\nimport { type Blueprint } from '@dxos/blueprints';\nimport { type Ref } from '@dxos/echo';\nimport { FunctionType } from '@dxos/functions';\nimport { log } from '@dxos/log';\nimport { Filter, type Space, useQuery } from '@dxos/react-client/echo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { useTranslation } from '@dxos/react-ui';\nimport { mx } from '@dxos/react-ui-theme';\n\nimport { meta } from '../../meta';\nimport { type AiChatProcessor } from '../../processor';\nimport { ServiceType } from '../../types';\n\nexport type ToolboxProps = ThemedClassName<{\n services?: { service: ServiceType }[];\n functions?: FunctionType[];\n // TODO(burdon): Combine into single array.\n blueprints?: readonly Ref.Ref<Blueprint.Blueprint>[];\n activeBlueprints?: readonly Ref.Ref<Blueprint.Blueprint>[];\n}>;\n\nexport const Toolbox = ({ classNames, functions, services, blueprints, activeBlueprints }: ToolboxProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <div className={mx('flex flex-col overflow-y-auto box-content', classNames)}>\n {blueprints && blueprints.length > 0 && (\n <Section\n title='Blueprints'\n items={blueprints.map(({ target }) => ({\n name: target?.name ?? '',\n description: target?.description ?? '',\n subitems: target?.tools.map((toolId) => ({ name: `∙ ${safeToolId(toolId)}` })),\n }))}\n />\n )}\n\n {activeBlueprints && activeBlueprints.length > 0 && (\n <Section\n title='Blueprints'\n items={activeBlueprints.map(({ target }) => ({\n name: target?.name ?? '',\n description: target?.description ?? '',\n subitems: target?.tools.map((toolId) => ({ name: `∙ ${safeToolId(toolId)}` })),\n }))}\n />\n )}\n\n {services && services.length > 0 && (\n <Section\n title='Services'\n items={services.map(({ service: { serviceId, name, description } }) => ({\n name: name ?? serviceId,\n description,\n // subitems: tools.map(({ name, description }) => ({ name: `∙ ${name}`, description })),\n }))}\n />\n )}\n\n {functions && functions.length > 0 && (\n <Section title='Functions' items={functions.map(({ name, description }) => ({ name, description }))} />\n )}\n </div>\n );\n};\n\nconst Section: FC<{\n title: string;\n items: { name: string; description?: string; subitems?: { name: string; description?: string }[] }[];\n striped?: boolean;\n}> = ({ title, items, striped }) => {\n const stripeClassNames = 'odd:bg-neutral-50 dark:odd:bg-neutral-800';\n const gridClassNames = 'grid grid-cols-[8rem_1fr]';\n const subGridClassNames = mx('col-span-full grid grid-cols-subgrid text-xs px-2', striped && stripeClassNames);\n\n return (\n <div>\n <h1 className='px-2 text-sm'>{title}</h1>\n <div className={gridClassNames}>\n {items.map(({ name, description, subitems }, i) => (\n <Fragment key={i}>\n {name && (\n <div className={subGridClassNames}>\n <div className='truncate text-primary-500'>{name}</div>\n <div className='line-clamp-2'>{description}</div>\n </div>\n )}\n {subitems?.map(({ name, description }, i) => (\n <div key={i} className={mx(subGridClassNames, striped && stripeClassNames)}>\n <div className='truncate'>{name}</div>\n <div className='line-clamp-3 text-subdued'>{description}</div>\n </div>\n ))}\n </Fragment>\n ))}\n </div>\n </div>\n );\n};\n\nexport type ToolboxContainerProps = ThemedClassName<{\n space?: Space;\n processor?: AiChatProcessor;\n}>;\n\nexport const ToolboxContainer = ({ classNames, space, processor }: ToolboxContainerProps) => {\n // Registered services.\n const services = useQuery(space, Filter.type(ServiceType));\n const [serviceTools, setServiceTools] = useState<{ service: ServiceType }[]>([]);\n useEffect(() => {\n log('creating service tools...', { services: services.length });\n queueMicrotask(async () => {\n // TODO(burdon): Fix.\n // const tools = await Promise.all(\n // services.map(async (service) => ({ service, tools: await createToolsFromService(service) })),\n // );\n // setServiceTools(tools);\n });\n }, [services]);\n\n // Deployed functions.\n const functions = useQuery(space, Filter.type(FunctionType));\n\n return (\n <Toolbox\n classNames={classNames}\n blueprints={processor?.context.blueprints.value}\n services={serviceTools}\n functions={functions}\n />\n );\n};\n\nconst safeToolId = (name: string) => {\n return name.split('_').pop();\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './AssistantSettings';\nexport * from './Chat';\nexport * from './ChatProgress';\nexport * from './PromptSettings';\nexport * from './TemplateEditor';\nexport * from './Toolbar';\nexport * from './Toolbox';\n\nexport const BlueprintContainer = lazy(() => import('./BlueprintContainer'));\nexport const ChatCompanion = lazy(() => import('./ChatCompanion'));\nexport const ChatContainer = lazy(() => import('./ChatContainer'));\nexport const ChatDialog = lazy(() => import('./ChatDialog'));\nexport const SequenceContainer = lazy(() => import('./SequenceContainer'));\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "DEFAULT_EDGE_MODELS", "DEFAULT_OLLAMA_MODELS", "Input", "Select", "useTranslation", "ControlGroup", "ControlItemInput", "ControlPage", "ControlSection", "DEFAULT_VALUE", "LLM_PROVIDER_LABELS", "edge", "ollama", "lmstudio", "AssistantSettings", "settings", "t", "useTranslation", "meta", "id", "ControlPage", "ControlSection", "title", "ns", "ControlGroup", "ControlItemInput", "Input", "Switch", "checked", "customPrompts", "onCheckedChange", "Select", "Root", "value", "llmProvider", "onValueChange", "undefined", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "Option", "LLM_PROVIDERS", "map", "model", "key", "Arrow", "edgeModel", "DEFAULT_EDGE_MODELS", "ollamaModel", "DEFAULT_OLLAMA_MODELS", "React", "useCallback", "useEffect", "useMemo", "useRef", "useState", "addEventListener", "Flex", "ProgressBar", "TextCrawl", "ChatProgress", "chat", "commits", "useExecutionGraph", "traceQueue", "target", "nodes", "useMemo", "map", "commit", "id", "message", "lines", "index", "setIndex", "useState", "undefined", "handleSelect", "useCallback", "current", "ref", "useRef", "useEffect", "addEventListener", "event", "key", "length", "React", "Flex", "column", "tabIndex", "classNames", "ProgressBar", "onSelect", "TextCrawl", "autoAdvance", "React", "Toolbar", "useTranslation", "PromptSettings", "template", "t", "useTranslation", "meta", "id", "React", "div", "className", "h2", "Toolbar", "Root", "React", "Fragment", "useEffect", "useState", "FunctionType", "log", "Filter", "useQuery", "useTranslation", "mx", "Toolbox", "classNames", "functions", "services", "blueprints", "activeBlueprints", "t", "useTranslation", "meta", "id", "React", "div", "className", "mx", "length", "Section", "title", "items", "map", "target", "name", "description", "subitems", "tools", "toolId", "safeToolId", "service", "serviceId", "striped", "stripeClassNames", "gridClassNames", "subGridClassNames", "h1", "i", "Fragment", "key", "ToolboxContainer", "space", "processor", "useQuery", "Filter", "type", "ServiceType", "serviceTools", "setServiceTools", "useState", "useEffect", "log", "queueMicrotask", "FunctionType", "context", "value", "split", "pop", "lazy", "BlueprintContainer", "lazy", "ChatCompanion", "ChatContainer", "ChatDialog", "SequenceContainer"]
7
+ }
@@ -0,0 +1,169 @@
1
+ import {
2
+ AssistantAction_exports,
3
+ Assistant_exports
4
+ } from "./chunk-SMIVXXAI.mjs";
5
+ import {
6
+ meta
7
+ } from "./chunk-O4LUJEDV.mjs";
8
+
9
+ // src/components/Toolbar/Toolbar.tsx
10
+ import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
11
+ import React from "react";
12
+ import { fullyQualifiedId } from "@dxos/react-client/echo";
13
+ import { MenuProvider, ToolbarMenu } from "@dxos/react-ui-menu";
14
+
15
+ // src/components/Toolbar/useChatToolbarActions.ts
16
+ import { Rx } from "@effect-rx/rx-react";
17
+ import { Effect } from "effect";
18
+ import { useMemo } from "react";
19
+ import { createIntent, useIntentDispatcher } from "@dxos/app-framework";
20
+ import { Filter, Obj, Query } from "@dxos/echo";
21
+ import { invariant } from "@dxos/invariant";
22
+ import { SpaceAction } from "@dxos/plugin-space/types";
23
+ import { getSpace, useQuery } from "@dxos/react-client/echo";
24
+ import { MenuBuilder, useMenuActions } from "@dxos/react-ui-menu";
25
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-assistant/src/components/Toolbar/useChatToolbarActions.ts";
26
+ var useChatToolbarActions = ({ chat, companionTo, onReset }) => {
27
+ const { dispatch } = useIntentDispatcher();
28
+ const space = getSpace(chat);
29
+ const query = companionTo ? Query.select(Filter.ids(companionTo.id)).targetOf(Assistant_exports.CompanionTo).source() : Query.select(Filter.nothing());
30
+ const chats = useQuery(space, query);
31
+ return useMenuActions(useMemo(() => Rx.make(() => {
32
+ const builder = MenuBuilder.make().root({
33
+ label: [
34
+ "chat toolbar title",
35
+ {
36
+ ns: meta.id
37
+ }
38
+ ]
39
+ }).action("new", {
40
+ label: [
41
+ "button new thread",
42
+ {
43
+ ns: meta.id
44
+ }
45
+ ],
46
+ icon: "ph--plus--regular",
47
+ type: "new"
48
+ }, () => Effect.gen(function* () {
49
+ invariant(space, void 0, {
50
+ F: __dxlog_file,
51
+ L: 51,
52
+ S: this,
53
+ A: [
54
+ "space",
55
+ ""
56
+ ]
57
+ });
58
+ const { object } = yield* dispatch(createIntent(AssistantAction_exports.CreateChat, {
59
+ space
60
+ }));
61
+ yield* dispatch(createIntent(SpaceAction.AddObject, {
62
+ object,
63
+ target: space,
64
+ hidden: true
65
+ }));
66
+ if (companionTo) {
67
+ yield* dispatch(createIntent(SpaceAction.AddRelation, {
68
+ space,
69
+ schema: Assistant_exports.CompanionTo,
70
+ source: object,
71
+ target: companionTo
72
+ }));
73
+ yield* dispatch(createIntent(AssistantAction_exports.SetCurrentChat, {
74
+ companionTo,
75
+ chat: object
76
+ }));
77
+ }
78
+ }).pipe(Effect.runPromise)).action("branch", {
79
+ label: [
80
+ "button branch thread",
81
+ {
82
+ ns: meta.id
83
+ }
84
+ ],
85
+ icon: "ph--git-branch--regular",
86
+ type: "branch",
87
+ disabled: true
88
+ }, () => {
89
+ });
90
+ if (chats.length > 0) {
91
+ builder.group("chats", {
92
+ label: [
93
+ "chat history label",
94
+ {
95
+ ns: meta.id
96
+ }
97
+ ],
98
+ icon: "ph--clock-counter-clockwise--regular",
99
+ selectCardinality: "single",
100
+ variant: "dropdownMenu"
101
+ }, (builder2) => {
102
+ chats.toSorted((a, b) => a.id.localeCompare(b.id)).forEach((chat2) => {
103
+ builder2.action(chat2.id, {
104
+ label: Obj.getLabel(chat2) ?? [
105
+ "object name placeholder",
106
+ {
107
+ ns: Assistant_exports.Chat.typename
108
+ }
109
+ ]
110
+ }, () => Effect.gen(function* () {
111
+ invariant(companionTo, void 0, {
112
+ F: __dxlog_file,
113
+ L: 100,
114
+ S: this,
115
+ A: [
116
+ "companionTo",
117
+ ""
118
+ ]
119
+ });
120
+ yield* dispatch(createIntent(AssistantAction_exports.SetCurrentChat, {
121
+ companionTo,
122
+ chat: chat2
123
+ }));
124
+ }).pipe(Effect.runPromise));
125
+ });
126
+ });
127
+ }
128
+ if (onReset) {
129
+ builder.action("reset", {
130
+ label: [
131
+ "button reset",
132
+ {
133
+ ns: meta.id
134
+ }
135
+ ],
136
+ icon: "ph--trash--regular",
137
+ type: "reset"
138
+ }, onReset);
139
+ }
140
+ return builder.build();
141
+ }), [
142
+ chats
143
+ ]));
144
+ };
145
+
146
+ // src/components/Toolbar/Toolbar.tsx
147
+ var Toolbar = ({ chat, companionTo, onReset, classNames }) => {
148
+ var _effect = _useSignals();
149
+ try {
150
+ const menu = useChatToolbarActions({
151
+ chat,
152
+ companionTo,
153
+ onReset
154
+ });
155
+ return /* @__PURE__ */ React.createElement(MenuProvider, {
156
+ ...menu,
157
+ attendableId: companionTo ? fullyQualifiedId(companionTo) : fullyQualifiedId(chat)
158
+ }, /* @__PURE__ */ React.createElement(ToolbarMenu, {
159
+ classNames
160
+ }));
161
+ } finally {
162
+ _effect.f();
163
+ }
164
+ };
165
+
166
+ export {
167
+ Toolbar
168
+ };
169
+ //# sourceMappingURL=chunk-PQI3MGDN.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/Toolbar/Toolbar.tsx", "../../../src/components/Toolbar/useChatToolbarActions.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { fullyQualifiedId } from '@dxos/react-client/echo';\nimport { type ThemedClassName } from '@dxos/react-ui';\nimport { MenuProvider, ToolbarMenu } from '@dxos/react-ui-menu';\n\nimport { type ChatToolbarActionsProps, useChatToolbarActions } from './useChatToolbarActions';\n\nexport const Toolbar = ({ chat, companionTo, onReset, classNames }: ThemedClassName<ChatToolbarActionsProps>) => {\n const menu = useChatToolbarActions({ chat, companionTo, onReset });\n\n return (\n <MenuProvider {...menu} attendableId={companionTo ? fullyQualifiedId(companionTo) : fullyQualifiedId(chat)}>\n <ToolbarMenu classNames={classNames} />\n </MenuProvider>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Effect } from 'effect';\nimport { useMemo } from 'react';\n\nimport { createIntent, useIntentDispatcher } from '@dxos/app-framework';\nimport { Filter, Obj, Query } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { getSpace, useQuery } from '@dxos/react-client/echo';\nimport { MenuBuilder, useMenuActions } from '@dxos/react-ui-menu';\n\nimport { meta } from '../../meta';\nimport { Assistant, AssistantAction } from '../../types';\n\nexport type ChatToolbarActionsProps = {\n chat: Assistant.Chat;\n companionTo?: Obj.Any;\n onReset?: () => void;\n};\n\nexport const useChatToolbarActions = ({ chat, companionTo, onReset }: ChatToolbarActionsProps) => {\n const { dispatch } = useIntentDispatcher();\n const space = getSpace(chat);\n const query = companionTo\n ? Query.select(Filter.ids(companionTo.id)).targetOf(Assistant.CompanionTo).source()\n : Query.select(Filter.nothing());\n // TODO(wittjosiah): Query in react vs query in rx?\n const chats = useQuery(space, query);\n\n return useMenuActions(\n useMemo(\n () =>\n Rx.make(() => {\n const builder = MenuBuilder.make()\n .root({\n label: ['chat toolbar title', { ns: meta.id }],\n })\n .action(\n 'new',\n {\n label: ['button new thread', { ns: meta.id }],\n icon: 'ph--plus--regular',\n type: 'new',\n },\n () =>\n Effect.gen(function* () {\n invariant(space);\n const { object } = yield* dispatch(createIntent(AssistantAction.CreateChat, { space }));\n yield* dispatch(createIntent(SpaceAction.AddObject, { object, target: space, hidden: true }));\n if (companionTo) {\n yield* dispatch(\n createIntent(SpaceAction.AddRelation, {\n space,\n schema: Assistant.CompanionTo,\n source: object,\n target: companionTo,\n }),\n );\n\n yield* dispatch(createIntent(AssistantAction.SetCurrentChat, { companionTo, chat: object }));\n }\n }).pipe(Effect.runPromise),\n )\n .action(\n 'branch',\n {\n label: ['button branch thread', { ns: meta.id }],\n icon: 'ph--git-branch--regular',\n type: 'branch',\n disabled: true,\n },\n () => {},\n );\n\n if (chats.length > 0) {\n builder.group(\n 'chats',\n {\n label: ['chat history label', { ns: meta.id }],\n icon: 'ph--clock-counter-clockwise--regular',\n selectCardinality: 'single',\n variant: 'dropdownMenu',\n },\n (builder) => {\n chats\n // TODO(wittjosiah): This should be the default sort order.\n .toSorted((a, b) => a.id.localeCompare(b.id))\n .forEach((chat) => {\n builder.action(\n chat.id,\n {\n label: Obj.getLabel(chat) ?? ['object name placeholder', { ns: Assistant.Chat.typename }],\n },\n () =>\n Effect.gen(function* () {\n invariant(companionTo);\n yield* dispatch(createIntent(AssistantAction.SetCurrentChat, { companionTo, chat }));\n }).pipe(Effect.runPromise),\n );\n });\n },\n );\n }\n\n if (onReset) {\n builder.action(\n 'reset',\n {\n label: ['button reset', { ns: meta.id }],\n icon: 'ph--trash--regular',\n type: 'reset',\n },\n onReset,\n );\n }\n\n return builder.build();\n }),\n [chats],\n ),\n );\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "fullyQualifiedId", "MenuProvider", "ToolbarMenu", "Rx", "Effect", "useMemo", "createIntent", "useIntentDispatcher", "Filter", "Obj", "Query", "invariant", "SpaceAction", "getSpace", "useQuery", "MenuBuilder", "useMenuActions", "useChatToolbarActions", "chat", "companionTo", "onReset", "dispatch", "useIntentDispatcher", "space", "getSpace", "query", "Query", "select", "Filter", "ids", "id", "targetOf", "Assistant", "CompanionTo", "source", "nothing", "chats", "useQuery", "useMenuActions", "useMemo", "Rx", "make", "builder", "MenuBuilder", "root", "label", "ns", "meta", "action", "icon", "type", "Effect", "gen", "invariant", "object", "createIntent", "AssistantAction", "CreateChat", "SpaceAction", "AddObject", "target", "hidden", "AddRelation", "schema", "SetCurrentChat", "pipe", "runPromise", "disabled", "length", "group", "selectCardinality", "variant", "toSorted", "a", "b", "localeCompare", "forEach", "Obj", "getLabel", "Chat", "typename", "build", "Toolbar", "chat", "companionTo", "onReset", "classNames", "menu", "useChatToolbarActions", "MenuProvider", "attendableId", "fullyQualifiedId", "ToolbarMenu"]
7
+ }