@dxos/plugin-assistant 0.8.1-main.303c73a → 0.8.1-main.81238a8

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 (216) hide show
  1. package/dist/lib/browser/{AssistantDialog-T5OJUIIV.mjs → AssistantDialog-L5RHNMU4.mjs} +6 -5
  2. package/dist/lib/browser/{AssistantDialog-T5OJUIIV.mjs.map → AssistantDialog-L5RHNMU4.mjs.map} +3 -3
  3. package/dist/lib/browser/{ChatContainer-FEZ323HB.mjs → ChatContainer-EEEVE62F.mjs} +5 -5
  4. package/dist/lib/browser/TemplateContainer-7IQ6V5AD.mjs +78 -0
  5. package/dist/lib/browser/TemplateContainer-7IQ6V5AD.mjs.map +7 -0
  6. package/dist/lib/browser/ai-client-BAPVMSNX.mjs +35 -0
  7. package/dist/lib/browser/ai-client-BAPVMSNX.mjs.map +7 -0
  8. package/dist/lib/browser/{app-graph-builder-AXAIFOGV.mjs → app-graph-builder-DTCUWBKB.mjs} +57 -13
  9. package/dist/lib/browser/app-graph-builder-DTCUWBKB.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-TCAE72QU.mjs → chunk-5RMJYOT7.mjs} +34 -12
  11. package/dist/lib/browser/chunk-5RMJYOT7.mjs.map +7 -0
  12. package/dist/lib/browser/{chunk-EUMPBC4T.mjs → chunk-6FTPLBSC.mjs} +2 -2
  13. package/dist/lib/browser/{chunk-NV7SVHMV.mjs → chunk-AF7VQAKS.mjs} +1 -1
  14. package/dist/lib/browser/{chunk-NV7SVHMV.mjs.map → chunk-AF7VQAKS.mjs.map} +2 -2
  15. package/dist/lib/browser/{chunk-NTLTGYYS.mjs → chunk-SVUCJXGN.mjs} +2 -2
  16. package/dist/lib/browser/chunk-SVUCJXGN.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-FRIKXDDQ.mjs → chunk-X6ALDUA5.mjs} +26 -4
  18. package/dist/lib/browser/chunk-X6ALDUA5.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-SUUECBDM.mjs → chunk-XFUCWOMV.mjs} +261 -60
  20. package/dist/lib/browser/chunk-XFUCWOMV.mjs.map +7 -0
  21. package/dist/lib/browser/index.mjs +21 -11
  22. package/dist/lib/browser/index.mjs.map +3 -3
  23. package/dist/lib/browser/{intent-resolver-QRVRZL6K.mjs → intent-resolver-U57FXP3I.mjs} +6 -3
  24. package/dist/lib/browser/{intent-resolver-QRVRZL6K.mjs.map → intent-resolver-U57FXP3I.mjs.map} +3 -3
  25. package/dist/lib/browser/meta.json +1 -1
  26. package/dist/lib/browser/{react-surface-B463WHMD.mjs → react-surface-KFLHNDNR.mjs} +10 -9
  27. package/dist/lib/browser/react-surface-KFLHNDNR.mjs.map +7 -0
  28. package/dist/lib/browser/{settings-JTT62IHD.mjs → settings-VAW6UWFL.mjs} +3 -3
  29. package/dist/lib/browser/types/index.mjs +6 -2
  30. package/dist/lib/node/{AssistantDialog-EZ5RBGPX.cjs → AssistantDialog-VIB7GPQN.cjs} +12 -11
  31. package/dist/lib/node/{AssistantDialog-EZ5RBGPX.cjs.map → AssistantDialog-VIB7GPQN.cjs.map} +3 -3
  32. package/dist/lib/node/{ChatContainer-FNYVBPZZ.cjs → ChatContainer-BPI3GEZS.cjs} +10 -10
  33. package/dist/lib/node/TemplateContainer-VPAZRFQA.cjs +104 -0
  34. package/dist/lib/node/TemplateContainer-VPAZRFQA.cjs.map +7 -0
  35. package/dist/lib/node/{ai-client-RBDOGK6W.cjs → ai-client-5ESLYXAV.cjs} +19 -19
  36. package/dist/lib/node/ai-client-5ESLYXAV.cjs.map +7 -0
  37. package/dist/lib/node/{app-graph-builder-D7SHQTZS.cjs → app-graph-builder-3P6WSON2.cjs} +63 -20
  38. package/dist/lib/node/app-graph-builder-3P6WSON2.cjs.map +7 -0
  39. package/dist/lib/node/{chunk-37GI4NYH.cjs → chunk-KLSNCP34.cjs} +33 -9
  40. package/dist/lib/node/chunk-KLSNCP34.cjs.map +7 -0
  41. package/dist/lib/node/{chunk-NV4TQQSU.cjs → chunk-N3SW6DJ6.cjs} +6 -6
  42. package/dist/lib/node/{chunk-RWY7LVFJ.cjs → chunk-OJJ4F6KP.cjs} +266 -69
  43. package/dist/lib/node/chunk-OJJ4F6KP.cjs.map +7 -0
  44. package/dist/lib/node/{chunk-GNPXCHFT.cjs → chunk-U6J2GO7I.cjs} +4 -4
  45. package/dist/lib/node/{chunk-GNPXCHFT.cjs.map → chunk-U6J2GO7I.cjs.map} +2 -2
  46. package/dist/lib/node/{chunk-3WXG6WA6.cjs → chunk-VRXFIS4X.cjs} +6 -6
  47. package/dist/lib/node/chunk-VRXFIS4X.cjs.map +7 -0
  48. package/dist/lib/node/{chunk-PMA7XUWM.cjs → chunk-WFVOWPKV.cjs} +40 -18
  49. package/dist/lib/node/chunk-WFVOWPKV.cjs.map +7 -0
  50. package/dist/lib/node/index.cjs +73 -63
  51. package/dist/lib/node/index.cjs.map +3 -3
  52. package/dist/lib/node/{intent-resolver-YMMAFVOB.cjs → intent-resolver-YIFAMM3B.cjs} +13 -10
  53. package/dist/lib/node/{intent-resolver-YMMAFVOB.cjs.map → intent-resolver-YIFAMM3B.cjs.map} +3 -3
  54. package/dist/lib/node/meta.json +1 -1
  55. package/dist/lib/node/{react-surface-RTYCL4GP.cjs → react-surface-REI6G6B3.cjs} +25 -24
  56. package/dist/lib/node/react-surface-REI6G6B3.cjs.map +7 -0
  57. package/dist/lib/node/{settings-4YEO7KXF.cjs → settings-2FEYGLYU.cjs} +8 -8
  58. package/dist/lib/node/types/index.cjs +15 -11
  59. package/dist/lib/node/types/index.cjs.map +2 -2
  60. package/dist/lib/node-esm/{AssistantDialog-57ZCJNSL.mjs → AssistantDialog-R3EPF2KL.mjs} +6 -5
  61. package/dist/lib/node-esm/{AssistantDialog-57ZCJNSL.mjs.map → AssistantDialog-R3EPF2KL.mjs.map} +3 -3
  62. package/dist/lib/node-esm/{ChatContainer-XYNXFPFT.mjs → ChatContainer-UJ7MV7GU.mjs} +5 -5
  63. package/dist/lib/node-esm/TemplateContainer-YLA6BJY6.mjs +79 -0
  64. package/dist/lib/node-esm/TemplateContainer-YLA6BJY6.mjs.map +7 -0
  65. package/dist/lib/node-esm/ai-client-XYZ5N7CR.mjs +36 -0
  66. package/dist/lib/node-esm/ai-client-XYZ5N7CR.mjs.map +7 -0
  67. package/dist/lib/node-esm/{app-graph-builder-H2GC2AZA.mjs → app-graph-builder-PMAQLTTN.mjs} +57 -13
  68. package/dist/lib/node-esm/app-graph-builder-PMAQLTTN.mjs.map +7 -0
  69. package/dist/lib/node-esm/{chunk-ICQN3TDS.mjs → chunk-2CIYX3SD.mjs} +2 -2
  70. package/dist/lib/node-esm/chunk-2CIYX3SD.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-YVEPFSWR.mjs → chunk-6GBMQIW7.mjs} +34 -12
  72. package/dist/lib/node-esm/chunk-6GBMQIW7.mjs.map +7 -0
  73. package/dist/lib/node-esm/{chunk-3HFSWIA5.mjs → chunk-AMTHOYNB.mjs} +261 -60
  74. package/dist/lib/node-esm/chunk-AMTHOYNB.mjs.map +7 -0
  75. package/dist/lib/node-esm/{chunk-LBQGJE5T.mjs → chunk-J63VQFQO.mjs} +2 -2
  76. package/dist/lib/node-esm/{chunk-7SV6X6XU.mjs → chunk-N6BVC2C2.mjs} +1 -1
  77. package/dist/lib/node-esm/{chunk-7SV6X6XU.mjs.map → chunk-N6BVC2C2.mjs.map} +2 -2
  78. package/dist/lib/node-esm/{chunk-CJ4Y3QW5.mjs → chunk-NMMRHHAR.mjs} +26 -4
  79. package/dist/lib/node-esm/chunk-NMMRHHAR.mjs.map +7 -0
  80. package/dist/lib/node-esm/index.mjs +21 -11
  81. package/dist/lib/node-esm/index.mjs.map +3 -3
  82. package/dist/lib/node-esm/{intent-resolver-MR7BOKEW.mjs → intent-resolver-SQ4HLL5L.mjs} +6 -3
  83. package/dist/lib/node-esm/{intent-resolver-MR7BOKEW.mjs.map → intent-resolver-SQ4HLL5L.mjs.map} +3 -3
  84. package/dist/lib/node-esm/meta.json +1 -1
  85. package/dist/lib/node-esm/{react-surface-Y4RK56TT.mjs → react-surface-LE57AGPI.mjs} +10 -9
  86. package/dist/lib/node-esm/react-surface-LE57AGPI.mjs.map +7 -0
  87. package/dist/lib/node-esm/{settings-S7P5RWQI.mjs → settings-VHR5KT4J.mjs} +3 -3
  88. package/dist/lib/node-esm/types/index.mjs +6 -2
  89. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  90. package/dist/types/src/capabilities/ai-client.d.ts +2 -1
  91. package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
  92. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  93. package/dist/types/src/capabilities/capabilities.d.ts +2 -1
  94. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  95. package/dist/types/src/capabilities/index.d.ts +1 -1
  96. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  98. package/dist/types/src/components/AssistantDialog.d.ts.map +1 -1
  99. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  100. package/dist/types/src/components/Prompt/Prompt.d.ts +3 -0
  101. package/dist/types/src/components/Prompt/Prompt.d.ts.map +1 -1
  102. package/dist/types/src/components/Prompt/Prompt.stories.d.ts +1 -0
  103. package/dist/types/src/components/Prompt/Prompt.stories.d.ts.map +1 -1
  104. package/dist/types/src/components/Prompt/PromptBar.d.ts +2 -2
  105. package/dist/types/src/components/Prompt/PromptBar.d.ts.map +1 -1
  106. package/dist/types/src/components/Prompt/references.d.ts +30 -0
  107. package/dist/types/src/components/Prompt/references.d.ts.map +1 -0
  108. package/dist/types/src/components/TemplateContainer.d.ts.map +1 -1
  109. package/dist/types/src/components/Thread/Thread.d.ts +11 -1
  110. package/dist/types/src/components/Thread/Thread.d.ts.map +1 -1
  111. package/dist/types/src/components/Thread/ThreadContainer.d.ts +1 -0
  112. package/dist/types/src/components/Thread/ThreadContainer.d.ts.map +1 -1
  113. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
  114. package/dist/types/src/components/Thread/ThreadMessage.d.ts.map +1 -1
  115. package/dist/types/src/components/Toolbox/Toolbox.d.ts +1 -1
  116. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  117. package/dist/types/src/components/index.d.ts.map +1 -1
  118. package/dist/types/src/hooks/index.d.ts +1 -0
  119. package/dist/types/src/hooks/index.d.ts.map +1 -1
  120. package/dist/types/src/hooks/invocation-handler.d.ts +1 -1
  121. package/dist/types/src/hooks/invocation-handler.d.ts.map +1 -1
  122. package/dist/types/src/hooks/processor.d.ts +2 -2
  123. package/dist/types/src/hooks/processor.d.ts.map +1 -1
  124. package/dist/types/src/hooks/useChatProcessor.d.ts +9 -2
  125. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  126. package/dist/types/src/hooks/useContextProvider.d.ts +17 -0
  127. package/dist/types/src/hooks/useContextProvider.d.ts.map +1 -0
  128. package/dist/types/src/hooks/useMessageQueue.d.ts +4 -4
  129. package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -1
  130. package/dist/types/src/meta.d.ts +2 -8
  131. package/dist/types/src/meta.d.ts.map +1 -1
  132. package/dist/types/src/testing/test-functions.d.ts.map +1 -1
  133. package/dist/types/src/tools/function.d.ts +1 -1
  134. package/dist/types/src/tools/function.d.ts.map +1 -1
  135. package/dist/types/src/translations.d.ts +21 -6
  136. package/dist/types/src/translations.d.ts.map +1 -1
  137. package/dist/types/src/types/service.d.ts +1 -1
  138. package/dist/types/src/types/service.d.ts.map +1 -1
  139. package/dist/types/src/types/template.d.ts +36 -0
  140. package/dist/types/src/types/template.d.ts.map +1 -1
  141. package/dist/types/src/types/types.d.ts +3 -1
  142. package/dist/types/src/types/types.d.ts.map +1 -1
  143. package/package.json +56 -55
  144. package/src/AssistantPlugin.tsx +11 -2
  145. package/src/capabilities/ai-client.ts +23 -7
  146. package/src/capabilities/app-graph-builder.ts +48 -4
  147. package/src/capabilities/capabilities.ts +3 -1
  148. package/src/capabilities/intent-resolver.ts +1 -1
  149. package/src/capabilities/react-surface.tsx +3 -2
  150. package/src/components/AssistantDialog.tsx +7 -1
  151. package/src/components/AssistantSettings/AssistantSettings.tsx +39 -5
  152. package/src/components/Prompt/Prompt.stories.tsx +34 -0
  153. package/src/components/Prompt/Prompt.tsx +9 -2
  154. package/src/components/Prompt/PromptBar.tsx +3 -1
  155. package/src/components/Prompt/references.ts +180 -0
  156. package/src/components/TemplateContainer.tsx +79 -4
  157. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +1 -1
  158. package/src/components/TemplateEditor/TemplateForm.stories.tsx +1 -1
  159. package/src/components/Thread/Thread.tsx +21 -0
  160. package/src/components/Thread/ThreadContainer.stories.tsx +3 -6
  161. package/src/components/Thread/ThreadContainer.tsx +7 -4
  162. package/src/components/Thread/ThreadMessage.tsx +17 -9
  163. package/src/components/Toolbox/Toolbox.tsx +1 -1
  164. package/src/components/index.ts +3 -0
  165. package/src/hooks/index.ts +1 -0
  166. package/src/hooks/invocation-handler.ts +3 -5
  167. package/src/hooks/processor.ts +5 -5
  168. package/src/hooks/useChatProcessor.tsx +24 -15
  169. package/src/hooks/useContextProvider.ts +55 -0
  170. package/src/hooks/useLocalTriggerManager.ts +1 -1
  171. package/src/hooks/useMessageQueue.ts +2 -4
  172. package/src/meta.ts +2 -2
  173. package/src/testing/test-functions.ts +2 -2
  174. package/src/tools/function.ts +2 -2
  175. package/src/translations.ts +8 -3
  176. package/src/types/service.ts +1 -1
  177. package/src/types/template.ts +22 -0
  178. package/src/types/types.ts +3 -1
  179. package/dist/lib/browser/TemplateContainer-B7MQNUPY.mjs +0 -23
  180. package/dist/lib/browser/TemplateContainer-B7MQNUPY.mjs.map +0 -7
  181. package/dist/lib/browser/ai-client-PORKRZXM.mjs +0 -33
  182. package/dist/lib/browser/ai-client-PORKRZXM.mjs.map +0 -7
  183. package/dist/lib/browser/app-graph-builder-AXAIFOGV.mjs.map +0 -7
  184. package/dist/lib/browser/chunk-FRIKXDDQ.mjs.map +0 -7
  185. package/dist/lib/browser/chunk-NTLTGYYS.mjs.map +0 -7
  186. package/dist/lib/browser/chunk-SUUECBDM.mjs.map +0 -7
  187. package/dist/lib/browser/chunk-TCAE72QU.mjs.map +0 -7
  188. package/dist/lib/browser/react-surface-B463WHMD.mjs.map +0 -7
  189. package/dist/lib/node/TemplateContainer-R4BZZP3E.cjs +0 -53
  190. package/dist/lib/node/TemplateContainer-R4BZZP3E.cjs.map +0 -7
  191. package/dist/lib/node/ai-client-RBDOGK6W.cjs.map +0 -7
  192. package/dist/lib/node/app-graph-builder-D7SHQTZS.cjs.map +0 -7
  193. package/dist/lib/node/chunk-37GI4NYH.cjs.map +0 -7
  194. package/dist/lib/node/chunk-3WXG6WA6.cjs.map +0 -7
  195. package/dist/lib/node/chunk-PMA7XUWM.cjs.map +0 -7
  196. package/dist/lib/node/chunk-RWY7LVFJ.cjs.map +0 -7
  197. package/dist/lib/node/react-surface-RTYCL4GP.cjs.map +0 -7
  198. package/dist/lib/node-esm/TemplateContainer-WSHTZBB5.mjs +0 -24
  199. package/dist/lib/node-esm/TemplateContainer-WSHTZBB5.mjs.map +0 -7
  200. package/dist/lib/node-esm/ai-client-OTZVBDUH.mjs +0 -34
  201. package/dist/lib/node-esm/ai-client-OTZVBDUH.mjs.map +0 -7
  202. package/dist/lib/node-esm/app-graph-builder-H2GC2AZA.mjs.map +0 -7
  203. package/dist/lib/node-esm/chunk-3HFSWIA5.mjs.map +0 -7
  204. package/dist/lib/node-esm/chunk-CJ4Y3QW5.mjs.map +0 -7
  205. package/dist/lib/node-esm/chunk-ICQN3TDS.mjs.map +0 -7
  206. package/dist/lib/node-esm/chunk-YVEPFSWR.mjs.map +0 -7
  207. package/dist/lib/node-esm/react-surface-Y4RK56TT.mjs.map +0 -7
  208. /package/dist/lib/browser/{ChatContainer-FEZ323HB.mjs.map → ChatContainer-EEEVE62F.mjs.map} +0 -0
  209. /package/dist/lib/browser/{chunk-EUMPBC4T.mjs.map → chunk-6FTPLBSC.mjs.map} +0 -0
  210. /package/dist/lib/browser/{settings-JTT62IHD.mjs.map → settings-VAW6UWFL.mjs.map} +0 -0
  211. /package/dist/lib/node/{ChatContainer-FNYVBPZZ.cjs.map → ChatContainer-BPI3GEZS.cjs.map} +0 -0
  212. /package/dist/lib/node/{chunk-NV4TQQSU.cjs.map → chunk-N3SW6DJ6.cjs.map} +0 -0
  213. /package/dist/lib/node/{settings-4YEO7KXF.cjs.map → settings-2FEYGLYU.cjs.map} +0 -0
  214. /package/dist/lib/node-esm/{ChatContainer-XYNXFPFT.mjs.map → ChatContainer-UJ7MV7GU.mjs.map} +0 -0
  215. /package/dist/lib/node-esm/{chunk-LBQGJE5T.mjs.map → chunk-J63VQFQO.mjs.map} +0 -0
  216. /package/dist/lib/node-esm/{settings-S7P5RWQI.mjs.map → settings-VHR5KT4J.mjs.map} +0 -0
@@ -1,19 +1,19 @@
1
1
  import {
2
2
  AssistantCapabilities
3
- } from "./chunk-NTLTGYYS.mjs";
3
+ } from "./chunk-SVUCJXGN.mjs";
4
4
  import {
5
5
  ServiceType,
6
6
  categoryIcons
7
- } from "./chunk-FRIKXDDQ.mjs";
7
+ } from "./chunk-X6ALDUA5.mjs";
8
8
  import {
9
9
  ASSISTANT_PLUGIN
10
- } from "./chunk-NV7SVHMV.mjs";
10
+ } from "./chunk-AF7VQAKS.mjs";
11
11
 
12
12
  // packages/plugins/experimental/plugin-assistant/src/components/Toolbox/Toolbox.tsx
13
13
  import React, { useState, useEffect, Fragment } from "react";
14
14
  import { Capabilities, useCapabilities } from "@dxos/app-framework";
15
15
  import { parseToolName } from "@dxos/artifact";
16
- import { FunctionType } from "@dxos/functions";
16
+ import { FunctionType } from "@dxos/functions/types";
17
17
  import { log as log3 } from "@dxos/log";
18
18
  import { Filter, useQuery } from "@dxos/react-client/echo";
19
19
  import { mx } from "@dxos/react-ui-theme";
@@ -21,7 +21,7 @@ import { mx } from "@dxos/react-ui-theme";
21
21
  // packages/plugins/experimental/plugin-assistant/src/tools/function.ts
22
22
  import { defineTool, ToolResult } from "@dxos/artifact";
23
23
  import { toEffectSchema } from "@dxos/echo-schema";
24
- import { getInvocationUrl, getUserFunctionUrlInMetadata } from "@dxos/functions";
24
+ import { getInvocationUrl, getUserFunctionUrlInMetadata } from "@dxos/functions/types";
25
25
  import { log } from "@dxos/log";
26
26
  import { getMeta } from "@dxos/react-client/echo";
27
27
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/tools/function.ts";
@@ -550,7 +550,7 @@ import { keyToFallback } from "@dxos/util";
550
550
  // packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadMessage.tsx
551
551
  import React3 from "react";
552
552
  import { invariant as invariant2 } from "@dxos/invariant";
553
- import { Button, ButtonGroup, Icon, IconButton } from "@dxos/react-ui";
553
+ import { Button, Icon, IconButton } from "@dxos/react-ui";
554
554
  import { MarkdownViewer, ToggleContainer as NativeToggleContainer } from "@dxos/react-ui-components";
555
555
  import { Json as Json2 } from "@dxos/react-ui-syntax-highlighter";
556
556
  import { mx as mx2 } from "@dxos/react-ui-theme";
@@ -681,7 +681,7 @@ var ToolContainer = ({ classNames, items }) => {
681
681
  // packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadMessage.tsx
682
682
  var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadMessage.tsx";
683
683
  var panelClassNames = "flex flex-col w-full px-2 bg-groupSurface rounded-md";
684
- var userClassNames = "bg-[--user-fill]";
684
+ var userClassNames = "bg-[--user-fill] text-inverse";
685
685
  var ToggleContainer2 = (props) => {
686
686
  return /* @__PURE__ */ React3.createElement(NativeToggleContainer, {
687
687
  ...props,
@@ -706,7 +706,7 @@ var ThreadMessage = ({ classNames, space, message, tools, onPrompt }) => {
706
706
  const { role, content = [] } = message;
707
707
  if (isToolMessage(message)) {
708
708
  return /* @__PURE__ */ React3.createElement(MessageContainer, {
709
- classNames
709
+ classNames: mx2(classNames, "animate-[fadeIn_0.5s]")
710
710
  }, /* @__PURE__ */ React3.createElement(ToolBlock, {
711
711
  space,
712
712
  classNames: panelClassNames,
@@ -721,7 +721,7 @@ var ThreadMessage = ({ classNames, space, message, tools, onPrompt }) => {
721
721
  const Component = components[block.type] ?? components.default;
722
722
  return /* @__PURE__ */ React3.createElement(MessageContainer, {
723
723
  key: idx,
724
- classNames,
724
+ classNames: mx2(classNames, "animate-[fadeIn_0.5s]"),
725
725
  user: block.type === "text" && role === "user"
726
726
  }, /* @__PURE__ */ React3.createElement(Component, {
727
727
  space,
@@ -737,7 +737,7 @@ var components = {
737
737
  ["text"]: ({ block }) => {
738
738
  invariant2(block.type === "text", void 0, {
739
739
  F: __dxlog_file5,
740
- L: 86,
740
+ L: 90,
741
741
  S: void 0,
742
742
  A: [
743
743
  "block.type === 'text'",
@@ -747,6 +747,7 @@ var components = {
747
747
  const title = block.disposition ? titles[block.disposition] : void 0;
748
748
  if (!title) {
749
749
  return /* @__PURE__ */ React3.createElement(MarkdownViewer, {
750
+ classNames: "[&>p]:animate-[fadeIn_0.5s]",
750
751
  content: block.text
751
752
  });
752
753
  }
@@ -773,7 +774,7 @@ var components = {
773
774
  ["json"]: ({ space, block, onPrompt }) => {
774
775
  invariant2(block.type === "json", void 0, {
775
776
  F: __dxlog_file5,
776
- L: 124,
777
+ L: 128,
777
778
  S: void 0,
778
779
  A: [
779
780
  "block.type === 'json'",
@@ -800,7 +801,10 @@ var components = {
800
801
  }
801
802
  case "select": {
802
803
  const { options = [] } = safeParseJson(block.json ?? "{}") ?? {};
803
- return /* @__PURE__ */ React3.createElement(ButtonGroup, null, options.map((option) => /* @__PURE__ */ React3.createElement(Button, {
804
+ return /* @__PURE__ */ React3.createElement("div", {
805
+ className: "flex flex-wrap gap-1"
806
+ }, options.map((option, idx) => /* @__PURE__ */ React3.createElement(Button, {
807
+ classNames: "animate-[fadeIn_0.5s] rounded-2xl text-sm",
804
808
  key: option,
805
809
  onClick: () => onPrompt?.(option)
806
810
  }, option)));
@@ -891,7 +895,7 @@ var messageReducer = ({ current, messages }, message) => {
891
895
  // packages/plugins/experimental/plugin-assistant/src/components/Prompt/Prompt.tsx
892
896
  import React4, { forwardRef, useImperativeHandle } from "react";
893
897
  import { useThemeContext } from "@dxos/react-ui";
894
- import { createBasicExtensions, createThemeExtensions, keymap as keymap2, useTextEditor } from "@dxos/react-ui-editor";
898
+ import { createBasicExtensions, createThemeExtensions, keymap as keymap3, useTextEditor } from "@dxos/react-ui-editor";
895
899
  import { mx as mx3 } from "@dxos/react-ui-theme";
896
900
 
897
901
  // packages/plugins/experimental/plugin-assistant/src/components/Prompt/autocomplete.ts
@@ -1048,10 +1052,127 @@ var InlineSuggestionWidget = class extends WidgetType {
1048
1052
  }
1049
1053
  };
1050
1054
 
1055
+ // packages/plugins/experimental/plugin-assistant/src/components/Prompt/references.ts
1056
+ import { autocompletion, completionKeymap } from "@codemirror/autocomplete";
1057
+ import { RangeSet } from "@codemirror/state";
1058
+ import { Decoration as Decoration2, EditorView as EditorView2, keymap as keymap2, ViewPlugin as ViewPlugin2, WidgetType as WidgetType2 } from "@codemirror/view";
1059
+ import { Mutex } from "@dxos/async";
1060
+ var promptReferences = ({ provider, debug = false, triggerCharacter = "@" }) => {
1061
+ if (triggerCharacter.length !== 1) {
1062
+ throw new Error("triggerCharacter must be a single character");
1063
+ }
1064
+ const decorationField = ViewPlugin2.fromClass(class ReferenceView {
1065
+ constructor(view) {
1066
+ this._mutex = new Mutex();
1067
+ this.decorations = Decoration2.set([]);
1068
+ queueMicrotask(async () => {
1069
+ const guard = await this._mutex.acquire();
1070
+ try {
1071
+ this.decorations = await this._computeDecorations(view);
1072
+ } finally {
1073
+ guard.release();
1074
+ }
1075
+ });
1076
+ }
1077
+ update(update) {
1078
+ if (update.docChanged) {
1079
+ queueMicrotask(async () => {
1080
+ const guard = await this._mutex.acquire();
1081
+ try {
1082
+ this.decorations = await this._computeDecorations(update.view);
1083
+ } finally {
1084
+ guard.release();
1085
+ }
1086
+ });
1087
+ }
1088
+ }
1089
+ async _computeDecorations(view) {
1090
+ const text = view.state.doc.toString();
1091
+ const references = text.matchAll(new RegExp(`${triggerCharacter}[a-zA-Z0-9@:]+\\s`, "g"));
1092
+ const decorations = [];
1093
+ for (const match of references) {
1094
+ const reference = match[0];
1095
+ const uri = reference.slice(1, -1);
1096
+ const data = await provider.resolveReference({
1097
+ uri
1098
+ });
1099
+ if (data) {
1100
+ decorations.push(Decoration2.replace({
1101
+ widget: new ReferenceWidget(data)
1102
+ }).range(match.index, match.index + reference.length));
1103
+ }
1104
+ }
1105
+ return Decoration2.set(decorations);
1106
+ }
1107
+ }, {
1108
+ decorations: (v) => v.decorations,
1109
+ provide: (plugin) => [
1110
+ EditorView2.atomicRanges.of((view) => view.plugin(decorationField)?.decorations ?? RangeSet.empty)
1111
+ ]
1112
+ });
1113
+ return [
1114
+ decorationField,
1115
+ EditorView2.theme({
1116
+ ".cm-reference-pill": {
1117
+ borderRadius: "0.25rem",
1118
+ borderWidth: "1px",
1119
+ marginRight: "0.25rem",
1120
+ marginLeft: "0.25rem"
1121
+ }
1122
+ }),
1123
+ autocompletion({
1124
+ activateOnTyping: true,
1125
+ override: [
1126
+ async (context) => {
1127
+ const match = context.matchBefore(new RegExp(`${triggerCharacter}[a-zA-Z0-9]+`));
1128
+ if (!match || match?.to === match?.from) {
1129
+ return null;
1130
+ }
1131
+ const query = match.text.slice(1);
1132
+ const references = await provider.getReferences({
1133
+ query
1134
+ });
1135
+ return {
1136
+ from: match.from,
1137
+ filter: false,
1138
+ options: references.map((reference) => ({
1139
+ label: reference.label,
1140
+ apply: `${triggerCharacter}${reference.uri} `
1141
+ }))
1142
+ };
1143
+ }
1144
+ ],
1145
+ closeOnBlur: !debug,
1146
+ tooltipClass: () => "shadow rounded",
1147
+ aboveCursor: true
1148
+ }),
1149
+ keymap2.of(completionKeymap)
1150
+ ];
1151
+ };
1152
+ var ReferenceWidget = class extends WidgetType2 {
1153
+ constructor(data) {
1154
+ super();
1155
+ this.data = data;
1156
+ }
1157
+ toDOM() {
1158
+ const span = document.createElement("span");
1159
+ span.textContent = `@ ${this.data.label}`;
1160
+ span.className = "cm-reference-pill";
1161
+ return span;
1162
+ }
1163
+ eq(other) {
1164
+ return other.data.uri === this.data.uri;
1165
+ }
1166
+ ignoreEvent() {
1167
+ return true;
1168
+ }
1169
+ };
1170
+
1051
1171
  // packages/plugins/experimental/plugin-assistant/src/components/Prompt/Prompt.tsx
1052
- var Prompt = /* @__PURE__ */ forwardRef(({ classNames, autoFocus, lineWrapping = false, placeholder, onSubmit, onSuggest, onOpenChange }, forwardRef2) => {
1172
+ var Prompt = /* @__PURE__ */ forwardRef(({ classNames, autoFocus, lineWrapping = false, placeholder, onSubmit, onSuggest, onOpenChange, references }, forwardRef2) => {
1053
1173
  const { themeMode } = useThemeContext();
1054
1174
  const { parentRef, view } = useTextEditor({
1175
+ debug: true,
1055
1176
  autoFocus,
1056
1177
  extensions: [
1057
1178
  createBasicExtensions({
@@ -1062,11 +1183,14 @@ var Prompt = /* @__PURE__ */ forwardRef(({ classNames, autoFocus, lineWrapping =
1062
1183
  createThemeExtensions({
1063
1184
  themeMode
1064
1185
  }),
1186
+ references ? promptReferences({
1187
+ provider: references
1188
+ }) : [],
1065
1189
  createAutocompleteExtension({
1066
1190
  onSubmit,
1067
1191
  onSuggest
1068
1192
  }),
1069
- keymap2.of([
1193
+ keymap3.of([
1070
1194
  {
1071
1195
  key: "Alt-ArrowUp",
1072
1196
  preventDefault: true,
@@ -1115,7 +1239,7 @@ var Prompt = /* @__PURE__ */ forwardRef(({ classNames, autoFocus, lineWrapping =
1115
1239
  ]);
1116
1240
  return /* @__PURE__ */ React4.createElement("div", {
1117
1241
  ref: parentRef,
1118
- className: mx3("w-full overflow-hidden", classNames)
1242
+ className: mx3("w-full", classNames)
1119
1243
  });
1120
1244
  });
1121
1245
 
@@ -1125,7 +1249,7 @@ import { useVoiceInput } from "@dxos/plugin-transcription";
1125
1249
  import { Icon as Icon2, IconButton as IconButton2, Tooltip, useTranslation } from "@dxos/react-ui";
1126
1250
  import { Spinner } from "@dxos/react-ui-sfx";
1127
1251
  import { errorText, mx as mx4 } from "@dxos/react-ui-theme";
1128
- var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCancel, ...props }) => {
1252
+ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCancel, references, ...props }) => {
1129
1253
  const { t } = useTranslation(ASSISTANT_PLUGIN);
1130
1254
  const promptRef = useRef2(null);
1131
1255
  const [active, setActive] = useState3(false);
@@ -1156,6 +1280,7 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
1156
1280
  classNames: "pbs-2",
1157
1281
  lineWrapping: true,
1158
1282
  placeholder: placeholder ?? t("prompt placeholder"),
1283
+ references,
1159
1284
  ...props
1160
1285
  }), (onCancel || microphone) && /* @__PURE__ */ React5.createElement("div", {
1161
1286
  className: "flex w-[--rail-action] h-[--rail-action] items-center justify-center"
@@ -1183,7 +1308,7 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
1183
1308
  };
1184
1309
 
1185
1310
  // packages/plugins/experimental/plugin-assistant/src/components/Thread/Thread.tsx
1186
- var Thread = ({ classNames, space, messages, collapse = true, transcription, processing, error, onSubmit, onCancel, onOpenChange, ...props }) => {
1311
+ var Thread = ({ classNames, space, messages, collapse = true, transcription, processing, error, onSubmit, onCancel, onOpenChange, contextProvider, ...props }) => {
1187
1312
  const scroller = useRef3(null);
1188
1313
  const identity = useIdentity();
1189
1314
  const fallbackValue = keyToFallback(identity.identityKey);
@@ -1209,6 +1334,21 @@ var Thread = ({ classNames, space, messages, collapse = true, transcription, pro
1209
1334
  messages,
1210
1335
  collapse
1211
1336
  ]);
1337
+ const references = useMemo2(() => {
1338
+ if (!contextProvider) {
1339
+ return void 0;
1340
+ }
1341
+ return {
1342
+ getReferences: async ({ query }) => contextProvider.query({
1343
+ query
1344
+ }),
1345
+ resolveReference: async ({ uri }) => contextProvider.resolveMetadata({
1346
+ uri
1347
+ })
1348
+ };
1349
+ }, [
1350
+ contextProvider
1351
+ ]);
1212
1352
  return /* @__PURE__ */ React6.createElement("div", {
1213
1353
  role: "none",
1214
1354
  className: mx5("flex flex-col grow overflow-hidden", classNames)
@@ -1233,26 +1373,27 @@ var Thread = ({ classNames, space, messages, collapse = true, transcription, pro
1233
1373
  error,
1234
1374
  onSubmit: handleSubmit,
1235
1375
  onCancel,
1236
- onOpenChange
1376
+ onOpenChange,
1377
+ references
1237
1378
  }));
1238
1379
  };
1239
1380
 
1240
1381
  // packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadContainer.tsx
1241
1382
  import React7, { useCallback as useCallback3 } from "react";
1242
1383
  import { invariant as invariant6 } from "@dxos/invariant";
1243
- import { log as log9 } from "@dxos/log";
1384
+ import { log as log10 } from "@dxos/log";
1244
1385
  import { getSpace as getSpace2 } from "@dxos/react-client/echo";
1245
1386
 
1246
1387
  // packages/plugins/experimental/plugin-assistant/src/hooks/processor.ts
1247
1388
  import { batch, computed, signal } from "@preact/signals-core";
1248
1389
  import { Message } from "@dxos/artifact";
1249
- import { isToolUse, runTools, MixedStreamParser, DEFAULT_LLM_MODEL } from "@dxos/assistant";
1390
+ import { isToolUse, runTools, MixedStreamParser, DEFAULT_EDGE_MODEL } from "@dxos/assistant";
1250
1391
  import { createStatic } from "@dxos/echo-schema";
1251
1392
  import { invariant as invariant3 } from "@dxos/invariant";
1252
1393
  import { log as log5 } from "@dxos/log";
1253
1394
  var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/hooks/processor.ts";
1254
1395
  var defaultOptions = {
1255
- model: DEFAULT_LLM_MODEL,
1396
+ model: DEFAULT_EDGE_MODEL,
1256
1397
  systemPrompt: "you are a helpful assistant"
1257
1398
  };
1258
1399
  var ChatProcessor = class {
@@ -1477,24 +1618,24 @@ var AIServiecOverloadedError = class extends Error {
1477
1618
  import { useEffect as useEffect3, useMemo as useMemo3, useState as useState4 } from "react";
1478
1619
  import { Capabilities as Capabilities2, useCapabilities as useCapabilities2, useCapability, useIntentDispatcher } from "@dxos/app-framework";
1479
1620
  import { createSystemPrompt } from "@dxos/artifact";
1480
- import { DEFAULT_LLM_MODEL as DEFAULT_LLM_MODEL2 } from "@dxos/assistant";
1481
- import { FunctionType as FunctionType2 } from "@dxos/functions";
1621
+ import { DEFAULT_EDGE_MODEL as DEFAULT_EDGE_MODEL2, DEFAULT_OLLAMA_MODEL } from "@dxos/assistant";
1622
+ import { FunctionType as FunctionType2 } from "@dxos/functions/types";
1482
1623
  import { log as log6 } from "@dxos/log";
1483
1624
  import { useConfig } from "@dxos/react-client";
1484
- import { Filter as Filter2, useQuery as useQuery2 } from "@dxos/react-client/echo";
1625
+ import { Filter as Filter2, fullyQualifiedId, useQuery as useQuery2 } from "@dxos/react-client/echo";
1485
1626
  import { isNonNullable as isNonNullable2 } from "@dxos/util";
1486
1627
 
1487
1628
  // packages/plugins/experimental/plugin-assistant/src/capabilities/index.ts
1488
1629
  import { lazy } from "@dxos/app-framework";
1489
- var AiClient = lazy(() => import("./ai-client-PORKRZXM.mjs"));
1490
- var AppGraphBuilder = lazy(() => import("./app-graph-builder-AXAIFOGV.mjs"));
1491
- var IntentResolver = lazy(() => import("./intent-resolver-QRVRZL6K.mjs"));
1492
- var ReactSurface = lazy(() => import("./react-surface-B463WHMD.mjs"));
1493
- var AssistantSettings = lazy(() => import("./settings-JTT62IHD.mjs"));
1630
+ var AiClient = lazy(() => import("./ai-client-BAPVMSNX.mjs"));
1631
+ var AppGraphBuilder = lazy(() => import("./app-graph-builder-DTCUWBKB.mjs"));
1632
+ var IntentResolver = lazy(() => import("./intent-resolver-U57FXP3I.mjs"));
1633
+ var ReactSurface = lazy(() => import("./react-surface-KFLHNDNR.mjs"));
1634
+ var AssistantSettings = lazy(() => import("./settings-VAW6UWFL.mjs"));
1494
1635
 
1495
1636
  // packages/plugins/experimental/plugin-assistant/src/hooks/useChatProcessor.tsx
1496
1637
  var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/hooks/useChatProcessor.tsx";
1497
- var useChatProcessor = (space, settings) => {
1638
+ var useChatProcessor = ({ chat, space, settings, part = "deck" }) => {
1498
1639
  const aiClient = useCapability(AssistantCapabilities.AiClient);
1499
1640
  const globalTools = useCapabilities2(Capabilities2.Tools);
1500
1641
  const artifactDefinitions = useCapabilities2(Capabilities2.ArtifactDefinition);
@@ -1504,7 +1645,7 @@ var useChatProcessor = (space, settings) => {
1504
1645
  useEffect3(() => {
1505
1646
  log6("creating service tools...", void 0, {
1506
1647
  F: __dxlog_file7,
1507
- L: 34,
1648
+ L: 41,
1508
1649
  S: void 0,
1509
1650
  C: (f, a) => f(...a)
1510
1651
  });
@@ -1517,10 +1658,13 @@ var useChatProcessor = (space, settings) => {
1517
1658
  ]);
1518
1659
  const config = useConfig();
1519
1660
  const functions = useQuery2(space, Filter2.schema(FunctionType2));
1661
+ const chatId = useMemo3(() => chat ? fullyQualifiedId(chat) : void 0, [
1662
+ chat
1663
+ ]);
1520
1664
  const [tools, extensions] = useMemo3(() => {
1521
1665
  log6("creating tools...", void 0, {
1522
1666
  F: __dxlog_file7,
1523
- L: 45,
1667
+ L: 53,
1524
1668
  S: void 0,
1525
1669
  C: (f, a) => f(...a)
1526
1670
  });
@@ -1532,7 +1676,9 @@ var useChatProcessor = (space, settings) => {
1532
1676
  ];
1533
1677
  const extensions2 = {
1534
1678
  space,
1535
- dispatch
1679
+ dispatch,
1680
+ pivotId: chatId,
1681
+ part
1536
1682
  };
1537
1683
  return [
1538
1684
  tools2,
@@ -1543,6 +1689,7 @@ var useChatProcessor = (space, settings) => {
1543
1689
  globalTools,
1544
1690
  artifactDefinitions,
1545
1691
  space,
1692
+ chatId,
1546
1693
  serviceTools,
1547
1694
  functions
1548
1695
  ]);
@@ -1551,37 +1698,36 @@ var useChatProcessor = (space, settings) => {
1551
1698
  }), [
1552
1699
  artifactDefinitions
1553
1700
  ]);
1701
+ const model = settings?.llmProvider === "ollama" ? settings?.ollamaModel ?? DEFAULT_OLLAMA_MODEL : settings?.edgeModel ?? DEFAULT_EDGE_MODEL2;
1554
1702
  const processor = useMemo3(() => {
1555
1703
  log6("creating processor...", {
1556
1704
  settings
1557
1705
  }, {
1558
1706
  F: __dxlog_file7,
1559
- L: 70,
1707
+ L: 84,
1560
1708
  S: void 0,
1561
1709
  C: (f, a) => f(...a)
1562
1710
  });
1563
- return new ChatProcessor(aiClient, tools, extensions, {
1564
- // TODO(burdon): Remove defualt (let backend decide if not specified).
1565
- model: settings?.llmModel ?? DEFAULT_LLM_MODEL2,
1566
- // TOOD(burdon): Query.
1711
+ return new ChatProcessor(aiClient.value, tools, extensions, {
1712
+ model,
1567
1713
  systemPrompt
1568
1714
  });
1569
1715
  }, [
1570
- aiClient,
1716
+ aiClient.value,
1571
1717
  tools,
1572
1718
  extensions,
1573
- systemPrompt,
1574
- settings?.llmModel
1719
+ model,
1720
+ systemPrompt
1575
1721
  ]);
1576
1722
  return processor;
1577
1723
  };
1578
1724
 
1579
1725
  // packages/plugins/experimental/plugin-assistant/src/hooks/useLocalTriggerManager.ts
1580
1726
  import { useEffect as useEffect4, useState as useState5 } from "react";
1581
- import { Mutex } from "@dxos/async";
1727
+ import { Mutex as Mutex2 } from "@dxos/async";
1582
1728
  import { Context } from "@dxos/context";
1583
1729
  import { createSubscriptionTrigger } from "@dxos/functions";
1584
- import { FunctionTrigger } from "@dxos/functions";
1730
+ import { FunctionTrigger } from "@dxos/functions/types";
1585
1731
  import { invariant as invariant5 } from "@dxos/invariant";
1586
1732
  import { log as log8 } from "@dxos/log";
1587
1733
  import { useClient } from "@dxos/react-client";
@@ -1590,19 +1736,18 @@ import { Filter as Filter3, useQuery as useQuery3 } from "@dxos/react-client/ech
1590
1736
  // packages/plugins/experimental/plugin-assistant/src/hooks/invocation-handler.ts
1591
1737
  import { sleep } from "@dxos/async";
1592
1738
  import { getObjectCore, ResultFormat } from "@dxos/echo-db";
1593
- import { FunctionType as FunctionType3 } from "@dxos/functions";
1739
+ import { FunctionType as FunctionType3, getUserFunctionUrlInMetadata as getUserFunctionUrlInMetadata2 } from "@dxos/functions/types";
1594
1740
  import { invariant as invariant4 } from "@dxos/invariant";
1595
1741
  import { DXN, LOCAL_SPACE_TAG } from "@dxos/keys";
1596
1742
  import { log as log7 } from "@dxos/log";
1597
1743
 
1598
1744
  // packages/plugins/experimental/plugin-assistant/src/hooks/useLocalTriggerManager.ts
1599
- var registerTriggersMutex = new Mutex();
1745
+ var registerTriggersMutex = new Mutex2();
1600
1746
 
1601
1747
  // packages/plugins/experimental/plugin-assistant/src/hooks/useMessageQueue.ts
1602
1748
  import { useMemo as useMemo4 } from "react";
1603
1749
  import { DXN as DXN2, QueueSubspaceTags } from "@dxos/keys";
1604
- import { getSpace } from "@dxos/react-client/echo";
1605
- import { useEdgeClient, useQueue } from "@dxos/react-edge-client";
1750
+ import { getSpace, useQueue } from "@dxos/react-client/echo";
1606
1751
  var useMessageQueue = (chat) => {
1607
1752
  const space = getSpace(chat);
1608
1753
  const queueDxn = useMemo4(() => {
@@ -1616,8 +1761,7 @@ var useMessageQueue = (chat) => {
1616
1761
  space,
1617
1762
  chat?.queue.dxn
1618
1763
  ]);
1619
- const edgeClient = useEdgeClient();
1620
- return useQueue(edgeClient, queueDxn);
1764
+ return useQueue(queueDxn);
1621
1765
  };
1622
1766
 
1623
1767
  // packages/plugins/experimental/plugin-assistant/src/hooks/useServices.ts
@@ -1625,7 +1769,7 @@ import { useEffect as useEffect5, useMemo as useMemo5, useState as useState6 } f
1625
1769
 
1626
1770
  // packages/plugins/experimental/plugin-assistant/src/testing/test-functions.ts
1627
1771
  import { createSystemPrompt as createSystemPrompt2 } from "@dxos/artifact";
1628
- import { DEFAULT_LLM_MODEL as DEFAULT_LLM_MODEL3 } from "@dxos/assistant";
1772
+ import { DEFAULT_EDGE_MODEL as DEFAULT_EDGE_MODEL3 } from "@dxos/assistant";
1629
1773
 
1630
1774
  // packages/plugins/experimental/plugin-assistant/src/testing/test-services.ts
1631
1775
  import { createStatic as createStatic2 } from "@dxos/echo-schema";
@@ -1741,11 +1885,67 @@ var useServices = (space, query) => {
1741
1885
  // packages/plugins/experimental/plugin-assistant/src/hooks/useTextInputEvents.ts
1742
1886
  import { useState as useState7, useCallback as useCallback2 } from "react";
1743
1887
 
1888
+ // packages/plugins/experimental/plugin-assistant/src/hooks/useContextProvider.ts
1889
+ import { useMemo as useMemo6 } from "react";
1890
+ import { Capabilities as Capabilities3, useCapabilities as useCapabilities3 } from "@dxos/app-framework";
1891
+ import { getDXN, getLabel, getSchema } from "@dxos/echo-schema";
1892
+ import { log as log9 } from "@dxos/log";
1893
+ import { Filter as Filter4 } from "@dxos/react-client/echo";
1894
+ var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/hooks/useContextProvider.ts";
1895
+ var stringMatch = (query, label) => label.toLowerCase().startsWith(query.toLowerCase());
1896
+ var useContextProvider = (space) => {
1897
+ const artifactDefinitions = useCapabilities3(Capabilities3.ArtifactDefinition);
1898
+ return useMemo6(() => {
1899
+ if (!space) {
1900
+ return void 0;
1901
+ }
1902
+ return {
1903
+ query: async ({ query }) => {
1904
+ const artifactSchemas = artifactDefinitions.map((artifact) => artifact.schema);
1905
+ const { objects } = await space.db.query(Filter4.or(...artifactSchemas.map((schema) => Filter4.schema(schema)))).run();
1906
+ return objects.map((object) => {
1907
+ log9.info("object", {
1908
+ object,
1909
+ label: getLabel(getSchema(object), object)
1910
+ }, {
1911
+ F: __dxlog_file8,
1912
+ L: 36,
1913
+ S: void 0,
1914
+ C: (f, a) => f(...a)
1915
+ });
1916
+ return object;
1917
+ }).filter((object) => stringMatch(query, getLabel(getSchema(object), object) ?? "")).filter((object) => !!getDXN(object)).map((object) => ({
1918
+ uri: getDXN(object).toString(),
1919
+ label: getLabel(getSchema(object), object) ?? ""
1920
+ }));
1921
+ },
1922
+ resolveMetadata: async ({ uri }) => {
1923
+ const object = await space.db.query({
1924
+ id: uri
1925
+ }).first();
1926
+ return {
1927
+ uri,
1928
+ label: getLabel(getSchema(object), object) ?? ""
1929
+ };
1930
+ }
1931
+ };
1932
+ }, [
1933
+ space,
1934
+ artifactDefinitions
1935
+ ]);
1936
+ };
1937
+
1744
1938
  // packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadContainer.tsx
1745
- var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadContainer.tsx";
1746
- var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) => {
1939
+ var __dxlog_file9 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadContainer.tsx";
1940
+ var ThreadContainer = ({ classNames, chat, settings, part, onOpenChange, ...props }) => {
1747
1941
  const space = getSpace2(chat);
1748
- const processor = useChatProcessor(space, settings);
1942
+ const contextProvider = useContextProvider(space);
1943
+ const processor = useChatProcessor({
1944
+ chat,
1945
+ space,
1946
+ settings,
1947
+ part
1948
+ });
1749
1949
  const messageQueue = useMessageQueue(chat);
1750
1950
  const messages = [
1751
1951
  ...messageQueue?.items ?? [],
@@ -1753,9 +1953,9 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
1753
1953
  ];
1754
1954
  const handleSubmit = useCallback3((text) => {
1755
1955
  if (processor.streaming.value) {
1756
- log9.warn("ignoring submit; still processing.", void 0, {
1757
- F: __dxlog_file8,
1758
- L: 39,
1956
+ log10.warn("ignoring submit; still processing.", void 0, {
1957
+ F: __dxlog_file9,
1958
+ L: 41,
1759
1959
  S: void 0,
1760
1960
  C: (f, a) => f(...a)
1761
1961
  });
@@ -1763,8 +1963,8 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
1763
1963
  }
1764
1964
  onOpenChange?.(true);
1765
1965
  invariant6(messageQueue, void 0, {
1766
- F: __dxlog_file8,
1767
- L: 45,
1966
+ F: __dxlog_file9,
1967
+ L: 47,
1768
1968
  S: void 0,
1769
1969
  A: [
1770
1970
  "messageQueue",
@@ -1801,6 +2001,7 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
1801
2001
  onCancel: handleCancel,
1802
2002
  onPrompt: handleSubmit,
1803
2003
  onOpenChange,
2004
+ contextProvider,
1804
2005
  ...props
1805
2006
  });
1806
2007
  };
@@ -1817,4 +2018,4 @@ export {
1817
2018
  Thread,
1818
2019
  ThreadContainer
1819
2020
  };
1820
- //# sourceMappingURL=chunk-SUUECBDM.mjs.map
2021
+ //# sourceMappingURL=chunk-XFUCWOMV.mjs.map