@dxos/plugin-assistant 0.8.3 → 0.8.4-main.5acf9ea

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 (432) hide show
  1. package/dist/lib/browser/{TemplateContainer-QQHVOTSI.mjs → BlueprintContainer-IZ4AK5EO.mjs} +10 -10
  2. package/dist/lib/browser/BlueprintContainer-IZ4AK5EO.mjs.map +7 -0
  3. package/dist/lib/browser/ChatContainer-RP3QEXYX.mjs +54 -0
  4. package/dist/lib/browser/ChatContainer-RP3QEXYX.mjs.map +7 -0
  5. package/dist/lib/browser/ChatDialog-ZVLXFHEY.mjs +72 -0
  6. package/dist/lib/browser/ChatDialog-ZVLXFHEY.mjs.map +7 -0
  7. package/dist/lib/browser/SequenceContainer-3UDVKWPA.mjs +162 -0
  8. package/dist/lib/browser/SequenceContainer-3UDVKWPA.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-builder-E4H5DCOJ.mjs → app-graph-builder-XSEOKJLG.mjs} +25 -86
  10. package/dist/lib/browser/app-graph-builder-XSEOKJLG.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-63GG6U6D.mjs +2226 -0
  12. package/dist/lib/browser/chunk-63GG6U6D.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-7W7LHTRH.mjs +171 -0
  14. package/dist/lib/browser/chunk-7W7LHTRH.mjs.map +7 -0
  15. package/dist/lib/{node/chunk-P74TWGMG.cjs → browser/chunk-FDCJSQYF.mjs} +10 -14
  16. package/dist/lib/{node-esm/chunk-BB2TAT4P.mjs.map → browser/chunk-FDCJSQYF.mjs.map} +1 -1
  17. package/dist/lib/browser/{chunk-JQFUME3B.mjs → chunk-KFXSBNZR.mjs} +36 -34
  18. package/dist/lib/browser/chunk-KFXSBNZR.mjs.map +7 -0
  19. package/dist/lib/browser/{chunk-BI6AHRNJ.mjs → chunk-LERGF5YG.mjs} +19 -68
  20. package/dist/lib/browser/chunk-LERGF5YG.mjs.map +7 -0
  21. package/dist/lib/browser/index.mjs +99 -119
  22. package/dist/lib/browser/index.mjs.map +4 -4
  23. package/dist/lib/browser/intent-resolver-MV3VSZLS.mjs +75 -0
  24. package/dist/lib/browser/intent-resolver-MV3VSZLS.mjs.map +7 -0
  25. package/dist/lib/browser/meta.json +1 -1
  26. package/dist/lib/browser/{react-surface-LXCNUSZN.mjs → react-surface-3GYEHQRP.mjs} +44 -53
  27. package/dist/lib/browser/react-surface-3GYEHQRP.mjs.map +7 -0
  28. package/dist/lib/browser/{settings-XRHXVWGB.mjs → settings-5GTTCVGD.mjs} +6 -6
  29. package/dist/lib/browser/settings-5GTTCVGD.mjs.map +7 -0
  30. package/dist/lib/browser/types/index.mjs +4 -20
  31. package/dist/lib/node-esm/{TemplateContainer-SOEWY2ZN.mjs → BlueprintContainer-RGTMNLNX.mjs} +10 -10
  32. package/dist/lib/node-esm/BlueprintContainer-RGTMNLNX.mjs.map +7 -0
  33. package/dist/lib/node-esm/ChatContainer-W3W6FWV3.mjs +55 -0
  34. package/dist/lib/node-esm/ChatContainer-W3W6FWV3.mjs.map +7 -0
  35. package/dist/lib/node-esm/ChatDialog-QW4JRKVO.mjs +73 -0
  36. package/dist/lib/node-esm/ChatDialog-QW4JRKVO.mjs.map +7 -0
  37. package/dist/lib/node-esm/SequenceContainer-RQQH5XOC.mjs +163 -0
  38. package/dist/lib/node-esm/SequenceContainer-RQQH5XOC.mjs.map +7 -0
  39. package/dist/lib/node-esm/{app-graph-builder-3SY5MBIK.mjs → app-graph-builder-PANCJUHV.mjs} +25 -86
  40. package/dist/lib/node-esm/app-graph-builder-PANCJUHV.mjs.map +7 -0
  41. package/dist/lib/node-esm/chunk-BFO3KHYL.mjs +2227 -0
  42. package/dist/lib/node-esm/chunk-BFO3KHYL.mjs.map +7 -0
  43. package/dist/lib/node-esm/{chunk-UCOFKNKN.mjs → chunk-MS3PJARN.mjs} +19 -68
  44. package/dist/lib/node-esm/chunk-MS3PJARN.mjs.map +7 -0
  45. package/dist/lib/node-esm/chunk-QN2H2EHV.mjs +41 -0
  46. package/dist/lib/{browser/chunk-XOZ7YMO3.mjs.map → node-esm/chunk-QN2H2EHV.mjs.map} +1 -1
  47. package/dist/lib/node-esm/{chunk-OYN6HLXZ.mjs → chunk-VIIMA3XQ.mjs} +36 -34
  48. package/dist/lib/node-esm/chunk-VIIMA3XQ.mjs.map +7 -0
  49. package/dist/lib/node-esm/chunk-Z7PUODRT.mjs +172 -0
  50. package/dist/lib/node-esm/chunk-Z7PUODRT.mjs.map +7 -0
  51. package/dist/lib/node-esm/index.mjs +99 -119
  52. package/dist/lib/node-esm/index.mjs.map +4 -4
  53. package/dist/lib/node-esm/intent-resolver-3FMC3GHC.mjs +76 -0
  54. package/dist/lib/node-esm/intent-resolver-3FMC3GHC.mjs.map +7 -0
  55. package/dist/lib/node-esm/meta.json +1 -1
  56. package/dist/lib/node-esm/{react-surface-7HA5EDWY.mjs → react-surface-QDQWJ7FZ.mjs} +44 -53
  57. package/dist/lib/node-esm/react-surface-QDQWJ7FZ.mjs.map +7 -0
  58. package/dist/lib/node-esm/{settings-5IAY6BT4.mjs → settings-J2EXEM5H.mjs} +6 -6
  59. package/dist/lib/node-esm/settings-J2EXEM5H.mjs.map +7 -0
  60. package/dist/lib/node-esm/types/index.mjs +4 -20
  61. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  62. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  63. package/dist/types/src/capabilities/index.d.ts +1 -3
  64. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  65. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
  66. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  67. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  68. package/dist/types/src/capability-definitions.d.ts +7 -0
  69. package/dist/types/src/capability-definitions.d.ts.map +1 -0
  70. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +2 -2
  71. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  72. package/dist/types/src/components/BlueprintContainer.d.ts +5 -6
  73. package/dist/types/src/components/BlueprintContainer.d.ts.map +1 -1
  74. package/dist/types/src/components/Chat/Chat.d.ts +47 -0
  75. package/dist/types/src/components/Chat/Chat.d.ts.map +1 -0
  76. package/dist/types/src/components/Chat/events.d.ts +30 -0
  77. package/dist/types/src/components/Chat/events.d.ts.map +1 -0
  78. package/dist/types/src/components/Chat/index.d.ts +3 -0
  79. package/dist/types/src/components/Chat/index.d.ts.map +1 -0
  80. package/dist/types/src/components/ChatContainer.d.ts +6 -6
  81. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  82. package/dist/types/src/components/ChatDialog.d.ts +8 -0
  83. package/dist/types/src/components/ChatDialog.d.ts.map +1 -0
  84. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts +11 -0
  85. package/dist/types/src/components/ChatPrompt/ChatActions.d.ts.map +1 -0
  86. package/dist/types/src/components/ChatPrompt/ChatOptionsMenu.d.ts +9 -0
  87. package/dist/types/src/components/ChatPrompt/ChatOptionsMenu.d.ts.map +1 -0
  88. package/dist/types/src/components/ChatPrompt/ChatPresets.d.ts +11 -0
  89. package/dist/types/src/components/ChatPrompt/ChatPresets.d.ts.map +1 -0
  90. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts +11 -0
  91. package/dist/types/src/components/ChatPrompt/ChatReferences.d.ts.map +1 -0
  92. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts +8 -0
  93. package/dist/types/src/components/ChatPrompt/ChatStatusIndicator.d.ts.map +1 -0
  94. package/dist/types/src/components/ChatPrompt/index.d.ts +6 -0
  95. package/dist/types/src/components/ChatPrompt/index.d.ts.map +1 -0
  96. package/dist/types/src/components/ChatThread/ChatMessage.d.ts +17 -0
  97. package/dist/types/src/components/ChatThread/ChatMessage.d.ts.map +1 -0
  98. package/dist/types/src/components/ChatThread/ChatThread.d.ts +19 -0
  99. package/dist/types/src/components/ChatThread/ChatThread.d.ts.map +1 -0
  100. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts +199 -0
  101. package/dist/types/src/components/ChatThread/ChatThread.stories.d.ts.map +1 -0
  102. package/dist/types/src/components/ChatThread/ToolBlock.d.ts +19 -0
  103. package/dist/types/src/components/ChatThread/ToolBlock.d.ts.map +1 -0
  104. package/dist/types/src/components/ChatThread/index.d.ts +2 -0
  105. package/dist/types/src/components/ChatThread/index.d.ts.map +1 -0
  106. package/dist/types/src/components/{Thread → ChatThread}/reducer.d.ts +4 -4
  107. package/dist/types/src/components/ChatThread/reducer.d.ts.map +1 -0
  108. package/dist/types/src/components/PromptSettings.d.ts +2 -2
  109. package/dist/types/src/components/PromptSettings.d.ts.map +1 -1
  110. package/dist/types/src/components/SequenceContainer.d.ts +8 -0
  111. package/dist/types/src/components/SequenceContainer.d.ts.map +1 -0
  112. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts +13 -0
  113. package/dist/types/src/components/SequenceEditor/SequenceEditor.d.ts.map +1 -0
  114. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts +8 -0
  115. package/dist/types/src/components/SequenceEditor/SequenceEditor.stories.d.ts.map +1 -0
  116. package/dist/types/src/components/SequenceEditor/index.d.ts +2 -0
  117. package/dist/types/src/components/SequenceEditor/index.d.ts.map +1 -0
  118. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +4 -3
  119. package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
  120. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +3 -3
  121. package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
  122. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +5 -4
  123. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  124. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts +1 -1
  125. package/dist/types/src/components/TemplateEditor/TemplateForm.stories.d.ts.map +1 -1
  126. package/dist/types/src/components/Toolbox/Toolbox.d.ts +11 -4
  127. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  128. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts +1 -1
  129. package/dist/types/src/components/Toolbox/Toolbox.stories.d.ts.map +1 -1
  130. package/dist/types/src/components/index.d.ts +6 -12
  131. package/dist/types/src/components/index.d.ts.map +1 -1
  132. package/dist/types/src/events.d.ts.map +1 -1
  133. package/dist/types/src/hooks/{processor.d.ts → chat-processor.d.ts} +36 -22
  134. package/dist/types/src/hooks/chat-processor.d.ts.map +1 -0
  135. package/dist/types/src/hooks/chat-processor.test.d.ts +2 -0
  136. package/dist/types/src/hooks/chat-processor.test.d.ts.map +1 -0
  137. package/dist/types/src/hooks/index.d.ts +5 -5
  138. package/dist/types/src/hooks/index.d.ts.map +1 -1
  139. package/dist/types/src/hooks/presets.d.ts +13 -0
  140. package/dist/types/src/hooks/presets.d.ts.map +1 -0
  141. package/dist/types/src/hooks/useBlueprints.d.ts +9 -0
  142. package/dist/types/src/hooks/useBlueprints.d.ts.map +1 -0
  143. package/dist/types/src/hooks/useChatProcessor.d.ts +20 -8
  144. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  145. package/dist/types/src/hooks/useChatServices.d.ts +14 -0
  146. package/dist/types/src/hooks/useChatServices.d.ts.map +1 -0
  147. package/dist/types/src/hooks/useReferencesProvider.d.ts +7 -0
  148. package/dist/types/src/hooks/useReferencesProvider.d.ts.map +1 -0
  149. package/dist/types/src/parser/index.d.ts +1 -1
  150. package/dist/types/src/parser/index.d.ts.map +1 -1
  151. package/dist/types/src/queue-logger.d.ts +5 -5
  152. package/dist/types/src/queue-logger.d.ts.map +1 -1
  153. package/dist/types/src/stories/Chat.stories.d.ts +207 -0
  154. package/dist/types/src/stories/Chat.stories.d.ts.map +1 -0
  155. package/dist/types/src/testing/index.d.ts +1 -1
  156. package/dist/types/src/testing/index.d.ts.map +1 -1
  157. package/dist/types/src/testing/test-sequence.d.ts +8 -0
  158. package/dist/types/src/testing/test-sequence.d.ts.map +1 -0
  159. package/dist/types/src/translations.d.ts +68 -113
  160. package/dist/types/src/translations.d.ts.map +1 -1
  161. package/dist/types/src/types/index.d.ts +1 -3
  162. package/dist/types/src/types/index.d.ts.map +1 -1
  163. package/dist/types/src/types/schema.d.ts +120 -0
  164. package/dist/types/src/types/schema.d.ts.map +1 -0
  165. package/dist/types/src/types/service.d.ts +9 -9
  166. package/dist/types/src/types/service.d.ts.map +1 -1
  167. package/dist/types/tsconfig.tsbuildinfo +1 -1
  168. package/package.json +84 -76
  169. package/src/AssistantPlugin.tsx +43 -44
  170. package/src/capabilities/app-graph-builder.ts +24 -103
  171. package/src/capabilities/index.ts +0 -3
  172. package/src/capabilities/intent-resolver.ts +41 -14
  173. package/src/capabilities/react-surface.tsx +38 -37
  174. package/src/capabilities/settings.ts +3 -3
  175. package/src/capability-definitions.ts +15 -0
  176. package/src/components/AssistantSettings/AssistantSettings.tsx +4 -4
  177. package/src/components/BlueprintContainer.tsx +9 -133
  178. package/src/components/Chat/Chat.tsx +388 -0
  179. package/src/components/Chat/events.ts +50 -0
  180. package/src/components/Chat/index.ts +7 -0
  181. package/src/components/ChatContainer.tsx +26 -20
  182. package/src/components/ChatDialog.tsx +64 -0
  183. package/src/components/ChatPrompt/ChatActions.tsx +71 -0
  184. package/src/components/ChatPrompt/ChatOptionsMenu.tsx +52 -0
  185. package/src/components/ChatPrompt/ChatPresets.tsx +28 -0
  186. package/src/components/ChatPrompt/ChatReferences.tsx +53 -0
  187. package/src/components/ChatPrompt/ChatStatusIndicator.tsx +39 -0
  188. package/src/components/ChatPrompt/index.ts +9 -0
  189. package/src/components/ChatThread/ChatMessage.tsx +268 -0
  190. package/src/components/ChatThread/ChatThread.stories.tsx +143 -0
  191. package/src/components/ChatThread/ChatThread.tsx +57 -0
  192. package/src/components/{Thread/ToolInvocations.tsx → ChatThread/ToolBlock.tsx} +36 -21
  193. package/src/{experimental/transcription → components/ChatThread}/index.ts +2 -0
  194. package/src/components/{Thread → ChatThread}/reducer.ts +14 -14
  195. package/src/components/PromptSettings.tsx +43 -45
  196. package/src/components/SequenceContainer.tsx +132 -0
  197. package/src/components/SequenceEditor/SequenceEditor.stories.tsx +32 -0
  198. package/src/components/{BlueprintEditor/BlueprintEditor.tsx → SequenceEditor/SequenceEditor.tsx} +7 -7
  199. package/src/components/{AmbientDialog → SequenceEditor}/index.ts +1 -1
  200. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +29 -34
  201. package/src/components/TemplateEditor/TemplateEditor.tsx +39 -24
  202. package/src/components/TemplateEditor/TemplateForm.stories.tsx +17 -17
  203. package/src/components/TemplateEditor/TemplateForm.tsx +50 -57
  204. package/src/components/Toolbox/Toolbox.stories.tsx +5 -6
  205. package/src/components/Toolbox/Toolbox.tsx +60 -4
  206. package/src/components/index.ts +4 -5
  207. package/src/events.ts +2 -2
  208. package/src/hooks/{processor.test.ts → chat-processor.test.ts} +3 -2
  209. package/src/hooks/chat-processor.ts +314 -0
  210. package/src/hooks/index.ts +5 -5
  211. package/src/hooks/presets.ts +52 -0
  212. package/src/hooks/useBlueprints.ts +57 -0
  213. package/src/hooks/useChatProcessor.ts +143 -0
  214. package/src/hooks/useChatServices.ts +67 -0
  215. package/src/hooks/{useContextProvider.ts → useReferencesProvider.ts} +14 -14
  216. package/src/parser/index.ts +1 -1
  217. package/src/queue-logger.ts +6 -6
  218. package/src/stories/Chat.stories.tsx +371 -0
  219. package/src/testing/index.ts +1 -1
  220. package/src/testing/test-functions.ts +1 -1
  221. package/src/testing/test-sequence.ts +51 -0
  222. package/src/tools/openapi.test.ts +11 -11
  223. package/src/translations.ts +39 -28
  224. package/src/types/index.ts +1 -3
  225. package/src/types/schema.ts +108 -0
  226. package/dist/lib/browser/AssistantDialog-MQOOR364.mjs +0 -47
  227. package/dist/lib/browser/AssistantDialog-MQOOR364.mjs.map +0 -7
  228. package/dist/lib/browser/BlueprintContainer-AT5Y7EXG.mjs +0 -321
  229. package/dist/lib/browser/BlueprintContainer-AT5Y7EXG.mjs.map +0 -7
  230. package/dist/lib/browser/ChatContainer-C2NEAS3A.mjs +0 -40
  231. package/dist/lib/browser/ChatContainer-C2NEAS3A.mjs.map +0 -7
  232. package/dist/lib/browser/TemplateContainer-QQHVOTSI.mjs.map +0 -7
  233. package/dist/lib/browser/ai-client-MK2ZZII2.mjs +0 -39
  234. package/dist/lib/browser/ai-client-MK2ZZII2.mjs.map +0 -7
  235. package/dist/lib/browser/app-graph-builder-E4H5DCOJ.mjs.map +0 -7
  236. package/dist/lib/browser/chunk-AAOKC2JN.mjs +0 -208
  237. package/dist/lib/browser/chunk-AAOKC2JN.mjs.map +0 -7
  238. package/dist/lib/browser/chunk-BI6AHRNJ.mjs.map +0 -7
  239. package/dist/lib/browser/chunk-JO4W3MF7.mjs +0 -2101
  240. package/dist/lib/browser/chunk-JO4W3MF7.mjs.map +0 -7
  241. package/dist/lib/browser/chunk-JQFUME3B.mjs.map +0 -7
  242. package/dist/lib/browser/chunk-MEGMOFJB.mjs +0 -16
  243. package/dist/lib/browser/chunk-MEGMOFJB.mjs.map +0 -7
  244. package/dist/lib/browser/chunk-Q6UZ4F3H.mjs +0 -96
  245. package/dist/lib/browser/chunk-Q6UZ4F3H.mjs.map +0 -7
  246. package/dist/lib/browser/chunk-UE3IZ4PN.mjs +0 -15
  247. package/dist/lib/browser/chunk-UE3IZ4PN.mjs.map +0 -7
  248. package/dist/lib/browser/chunk-XOZ7YMO3.mjs +0 -20
  249. package/dist/lib/browser/intent-resolver-3UICTGPM.mjs +0 -43
  250. package/dist/lib/browser/intent-resolver-3UICTGPM.mjs.map +0 -7
  251. package/dist/lib/browser/react-surface-LXCNUSZN.mjs.map +0 -7
  252. package/dist/lib/browser/settings-XRHXVWGB.mjs.map +0 -7
  253. package/dist/lib/node/AssistantDialog-AN4Z6YUV.cjs +0 -73
  254. package/dist/lib/node/AssistantDialog-AN4Z6YUV.cjs.map +0 -7
  255. package/dist/lib/node/BlueprintContainer-NOWLDYCZ.cjs +0 -344
  256. package/dist/lib/node/BlueprintContainer-NOWLDYCZ.cjs.map +0 -7
  257. package/dist/lib/node/ChatContainer-VKYBQHUB.cjs +0 -68
  258. package/dist/lib/node/ChatContainer-VKYBQHUB.cjs.map +0 -7
  259. package/dist/lib/node/TemplateContainer-JZF2DCCG.cjs +0 -58
  260. package/dist/lib/node/TemplateContainer-JZF2DCCG.cjs.map +0 -7
  261. package/dist/lib/node/ai-client-7HNSMUMT.cjs +0 -53
  262. package/dist/lib/node/ai-client-7HNSMUMT.cjs.map +0 -7
  263. package/dist/lib/node/app-graph-builder-PPR5B5KU.cjs +0 -235
  264. package/dist/lib/node/app-graph-builder-PPR5B5KU.cjs.map +0 -7
  265. package/dist/lib/node/chunk-4EEWTDQK.cjs +0 -117
  266. package/dist/lib/node/chunk-4EEWTDQK.cjs.map +0 -7
  267. package/dist/lib/node/chunk-FUAGEO7Q.cjs +0 -52
  268. package/dist/lib/node/chunk-FUAGEO7Q.cjs.map +0 -7
  269. package/dist/lib/node/chunk-HRNIUYVQ.cjs +0 -128
  270. package/dist/lib/node/chunk-HRNIUYVQ.cjs.map +0 -7
  271. package/dist/lib/node/chunk-IKZBMHSW.cjs +0 -184
  272. package/dist/lib/node/chunk-IKZBMHSW.cjs.map +0 -7
  273. package/dist/lib/node/chunk-LMDJEGZ2.cjs +0 -233
  274. package/dist/lib/node/chunk-LMDJEGZ2.cjs.map +0 -7
  275. package/dist/lib/node/chunk-NIDICM57.cjs +0 -2080
  276. package/dist/lib/node/chunk-NIDICM57.cjs.map +0 -7
  277. package/dist/lib/node/chunk-P74TWGMG.cjs.map +0 -7
  278. package/dist/lib/node/chunk-QGPWY6GW.cjs +0 -34
  279. package/dist/lib/node/chunk-QGPWY6GW.cjs.map +0 -7
  280. package/dist/lib/node/index.cjs +0 -289
  281. package/dist/lib/node/index.cjs.map +0 -7
  282. package/dist/lib/node/intent-resolver-QSWGTKON.cjs +0 -58
  283. package/dist/lib/node/intent-resolver-QSWGTKON.cjs.map +0 -7
  284. package/dist/lib/node/meta.json +0 -1
  285. package/dist/lib/node/react-surface-D3NBYRZ6.cjs +0 -172
  286. package/dist/lib/node/react-surface-D3NBYRZ6.cjs.map +0 -7
  287. package/dist/lib/node/settings-2JXLKYGE.cjs +0 -36
  288. package/dist/lib/node/settings-2JXLKYGE.cjs.map +0 -7
  289. package/dist/lib/node/types/index.cjs +0 -54
  290. package/dist/lib/node/types/index.cjs.map +0 -7
  291. package/dist/lib/node-esm/AssistantDialog-6WEMLUPU.mjs +0 -48
  292. package/dist/lib/node-esm/AssistantDialog-6WEMLUPU.mjs.map +0 -7
  293. package/dist/lib/node-esm/BlueprintContainer-STOJAVML.mjs +0 -322
  294. package/dist/lib/node-esm/BlueprintContainer-STOJAVML.mjs.map +0 -7
  295. package/dist/lib/node-esm/ChatContainer-3MVBTUJN.mjs +0 -41
  296. package/dist/lib/node-esm/ChatContainer-3MVBTUJN.mjs.map +0 -7
  297. package/dist/lib/node-esm/TemplateContainer-SOEWY2ZN.mjs.map +0 -7
  298. package/dist/lib/node-esm/ai-client-XGZBJ6BE.mjs +0 -40
  299. package/dist/lib/node-esm/ai-client-XGZBJ6BE.mjs.map +0 -7
  300. package/dist/lib/node-esm/app-graph-builder-3SY5MBIK.mjs.map +0 -7
  301. package/dist/lib/node-esm/chunk-34EX6E5Q.mjs +0 -18
  302. package/dist/lib/node-esm/chunk-34EX6E5Q.mjs.map +0 -7
  303. package/dist/lib/node-esm/chunk-3UEZLJ2V.mjs +0 -16
  304. package/dist/lib/node-esm/chunk-3UEZLJ2V.mjs.map +0 -7
  305. package/dist/lib/node-esm/chunk-BB2TAT4P.mjs +0 -22
  306. package/dist/lib/node-esm/chunk-CDAILLCU.mjs +0 -98
  307. package/dist/lib/node-esm/chunk-CDAILLCU.mjs.map +0 -7
  308. package/dist/lib/node-esm/chunk-J6UXXZGJ.mjs +0 -209
  309. package/dist/lib/node-esm/chunk-J6UXXZGJ.mjs.map +0 -7
  310. package/dist/lib/node-esm/chunk-OD574YIU.mjs +0 -2102
  311. package/dist/lib/node-esm/chunk-OD574YIU.mjs.map +0 -7
  312. package/dist/lib/node-esm/chunk-OYN6HLXZ.mjs.map +0 -7
  313. package/dist/lib/node-esm/chunk-UCOFKNKN.mjs.map +0 -7
  314. package/dist/lib/node-esm/intent-resolver-E6MXTYAU.mjs +0 -44
  315. package/dist/lib/node-esm/intent-resolver-E6MXTYAU.mjs.map +0 -7
  316. package/dist/lib/node-esm/react-surface-7HA5EDWY.mjs.map +0 -7
  317. package/dist/lib/node-esm/settings-5IAY6BT4.mjs.map +0 -7
  318. package/dist/types/src/capabilities/ai-client.d.ts +0 -5
  319. package/dist/types/src/capabilities/ai-client.d.ts.map +0 -1
  320. package/dist/types/src/capabilities/capabilities.d.ts +0 -6
  321. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  322. package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts +0 -10
  323. package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts.map +0 -1
  324. package/dist/types/src/components/AmbientDialog/AmbientDialog.stories.d.ts +0 -8
  325. package/dist/types/src/components/AmbientDialog/AmbientDialog.stories.d.ts.map +0 -1
  326. package/dist/types/src/components/AmbientDialog/index.d.ts +0 -2
  327. package/dist/types/src/components/AmbientDialog/index.d.ts.map +0 -1
  328. package/dist/types/src/components/AssistantDialog.d.ts +0 -7
  329. package/dist/types/src/components/AssistantDialog.d.ts.map +0 -1
  330. package/dist/types/src/components/BlueprintEditor/BlueprintEditor.d.ts +0 -13
  331. package/dist/types/src/components/BlueprintEditor/BlueprintEditor.d.ts.map +0 -1
  332. package/dist/types/src/components/BlueprintEditor/BlueprintEditor.stories.d.ts +0 -8
  333. package/dist/types/src/components/BlueprintEditor/BlueprintEditor.stories.d.ts.map +0 -1
  334. package/dist/types/src/components/BlueprintEditor/index.d.ts +0 -2
  335. package/dist/types/src/components/BlueprintEditor/index.d.ts.map +0 -1
  336. package/dist/types/src/components/Prompt/Prompt.d.ts +0 -23
  337. package/dist/types/src/components/Prompt/Prompt.d.ts.map +0 -1
  338. package/dist/types/src/components/Prompt/Prompt.stories.d.ts +0 -13
  339. package/dist/types/src/components/Prompt/Prompt.stories.d.ts.map +0 -1
  340. package/dist/types/src/components/Prompt/PromptBar.d.ts +0 -16
  341. package/dist/types/src/components/Prompt/PromptBar.d.ts.map +0 -1
  342. package/dist/types/src/components/Prompt/PromptBar.stories.d.ts +0 -9
  343. package/dist/types/src/components/Prompt/PromptBar.stories.d.ts.map +0 -1
  344. package/dist/types/src/components/Prompt/autocomplete.d.ts +0 -25
  345. package/dist/types/src/components/Prompt/autocomplete.d.ts.map +0 -1
  346. package/dist/types/src/components/Prompt/index.d.ts +0 -3
  347. package/dist/types/src/components/Prompt/index.d.ts.map +0 -1
  348. package/dist/types/src/components/Prompt/references.d.ts +0 -30
  349. package/dist/types/src/components/Prompt/references.d.ts.map +0 -1
  350. package/dist/types/src/components/TemplateContainer.d.ts +0 -8
  351. package/dist/types/src/components/TemplateContainer.d.ts.map +0 -1
  352. package/dist/types/src/components/Thread/Thread.d.ts +0 -28
  353. package/dist/types/src/components/Thread/Thread.d.ts.map +0 -1
  354. package/dist/types/src/components/Thread/Thread.stories.d.ts +0 -11
  355. package/dist/types/src/components/Thread/Thread.stories.d.ts.map +0 -1
  356. package/dist/types/src/components/Thread/ThreadContainer.d.ts +0 -13
  357. package/dist/types/src/components/Thread/ThreadContainer.d.ts.map +0 -1
  358. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts +0 -16
  359. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +0 -1
  360. package/dist/types/src/components/Thread/ThreadMessage.d.ts +0 -16
  361. package/dist/types/src/components/Thread/ThreadMessage.d.ts.map +0 -1
  362. package/dist/types/src/components/Thread/ToolInvocations.d.ts +0 -13
  363. package/dist/types/src/components/Thread/ToolInvocations.d.ts.map +0 -1
  364. package/dist/types/src/components/Thread/index.d.ts +0 -3
  365. package/dist/types/src/components/Thread/index.d.ts.map +0 -1
  366. package/dist/types/src/components/Thread/reducer.d.ts.map +0 -1
  367. package/dist/types/src/experimental/transcription/index.d.ts +0 -1
  368. package/dist/types/src/experimental/transcription/index.d.ts.map +0 -1
  369. package/dist/types/src/hooks/processor.d.ts.map +0 -1
  370. package/dist/types/src/hooks/processor.test.d.ts +0 -2
  371. package/dist/types/src/hooks/processor.test.d.ts.map +0 -1
  372. package/dist/types/src/hooks/useContextProvider.d.ts +0 -17
  373. package/dist/types/src/hooks/useContextProvider.d.ts.map +0 -1
  374. package/dist/types/src/hooks/useMessageQueue.d.ts +0 -42
  375. package/dist/types/src/hooks/useMessageQueue.d.ts.map +0 -1
  376. package/dist/types/src/hooks/useServices.d.ts +0 -7
  377. package/dist/types/src/hooks/useServices.d.ts.map +0 -1
  378. package/dist/types/src/hooks/useTextInputEvents.d.ts +0 -13
  379. package/dist/types/src/hooks/useTextInputEvents.d.ts.map +0 -1
  380. package/dist/types/src/stories/Prompt.stories.d.ts +0 -8
  381. package/dist/types/src/stories/Prompt.stories.d.ts.map +0 -1
  382. package/dist/types/src/stories/Query.stories.d.ts +0 -19
  383. package/dist/types/src/stories/Query.stories.d.ts.map +0 -1
  384. package/dist/types/src/stories/Research.stories.d.ts +0 -15
  385. package/dist/types/src/stories/Research.stories.d.ts.map +0 -1
  386. package/dist/types/src/stories/test-data.d.ts +0 -3
  387. package/dist/types/src/stories/test-data.d.ts.map +0 -1
  388. package/dist/types/src/stories/testing.d.ts +0 -12
  389. package/dist/types/src/stories/testing.d.ts.map +0 -1
  390. package/dist/types/src/testing/test-blueprint.d.ts +0 -8
  391. package/dist/types/src/testing/test-blueprint.d.ts.map +0 -1
  392. package/dist/types/src/types/chat.d.ts +0 -23
  393. package/dist/types/src/types/chat.d.ts.map +0 -1
  394. package/dist/types/src/types/template.d.ts +0 -56
  395. package/dist/types/src/types/template.d.ts.map +0 -1
  396. package/dist/types/src/types/types.d.ts +0 -50
  397. package/dist/types/src/types/types.d.ts.map +0 -1
  398. package/src/capabilities/ai-client.ts +0 -42
  399. package/src/capabilities/capabilities.ts +0 -15
  400. package/src/components/AmbientDialog/AmbientDialog.stories.tsx +0 -84
  401. package/src/components/AmbientDialog/AmbientDialog.tsx +0 -117
  402. package/src/components/AssistantDialog.tsx +0 -37
  403. package/src/components/BlueprintEditor/BlueprintEditor.stories.tsx +0 -32
  404. package/src/components/BlueprintEditor/index.ts +0 -5
  405. package/src/components/Prompt/Prompt.stories.tsx +0 -121
  406. package/src/components/Prompt/Prompt.tsx +0 -124
  407. package/src/components/Prompt/PromptBar.stories.tsx +0 -69
  408. package/src/components/Prompt/PromptBar.tsx +0 -105
  409. package/src/components/Prompt/autocomplete.ts +0 -218
  410. package/src/components/Prompt/index.ts +0 -6
  411. package/src/components/Prompt/references.ts +0 -180
  412. package/src/components/TemplateContainer.tsx +0 -23
  413. package/src/components/Thread/Thread.stories.tsx +0 -201
  414. package/src/components/Thread/Thread.tsx +0 -118
  415. package/src/components/Thread/ThreadContainer.stories.tsx +0 -283
  416. package/src/components/Thread/ThreadContainer.tsx +0 -105
  417. package/src/components/Thread/ThreadMessage.tsx +0 -234
  418. package/src/components/Thread/index.ts +0 -6
  419. package/src/hooks/processor.ts +0 -238
  420. package/src/hooks/useChatProcessor.tsx +0 -97
  421. package/src/hooks/useMessageQueue.ts +0 -22
  422. package/src/hooks/useServices.ts +0 -28
  423. package/src/hooks/useTextInputEvents.ts +0 -49
  424. package/src/stories/Prompt.stories.tsx +0 -60
  425. package/src/stories/Query.stories.tsx +0 -514
  426. package/src/stories/Research.stories.tsx +0 -482
  427. package/src/stories/test-data.ts +0 -128
  428. package/src/stories/testing.ts +0 -60
  429. package/src/testing/test-blueprint.ts +0 -58
  430. package/src/types/chat.ts +0 -32
  431. package/src/types/template.ts +0 -66
  432. package/src/types/types.ts +0 -48
@@ -7,6 +7,7 @@ import { styleTags, tags } from '@lezer/highlight';
7
7
  import { handlebarsLanguage } from '@xiechao/codemirror-lang-handlebars';
8
8
  import React from 'react';
9
9
 
10
+ import { type Template } from '@dxos/blueprints';
10
11
  import { createDocAccessor } from '@dxos/react-client/echo';
11
12
  import { useThemeContext, useTranslation, type ThemedClassName } from '@dxos/react-ui';
12
13
  import {
@@ -16,9 +17,9 @@ import {
16
17
  useTextEditor,
17
18
  } from '@dxos/react-ui-editor';
18
19
  import { mx } from '@dxos/react-ui-theme';
20
+ import { isNotFalsy } from '@dxos/util';
19
21
 
20
- import { ASSISTANT_PLUGIN } from '../../meta';
21
- import { type TemplateType } from '../../types';
22
+ import { meta } from '../../meta';
22
23
 
23
24
  handlebarsLanguage.configure({
24
25
  props: [
@@ -29,48 +30,62 @@ handlebarsLanguage.configure({
29
30
  });
30
31
 
31
32
  export type TemplateEditorProps = ThemedClassName<{
32
- template: TemplateType;
33
+ id: string;
34
+ template: Template.Template;
33
35
  }>;
34
36
 
35
- export const TemplateEditor = ({ classNames, template }: TemplateEditorProps) => {
36
- const { t } = useTranslation(ASSISTANT_PLUGIN);
37
+ export const TemplateEditor = ({ id, classNames, template }: TemplateEditorProps) => {
38
+ const { t } = useTranslation(meta.id);
37
39
  const { themeMode } = useThemeContext();
38
- const { parentRef } = useTextEditor(
39
- () => ({
40
- initialValue: template.source,
40
+ const { parentRef } = useTextEditor(() => {
41
+ const text = template.source?.target;
42
+ return {
43
+ initialValue: text?.content ?? '',
41
44
  extensions: [
42
- createDataExtensions({
43
- id: template.id,
44
- text: template.source !== undefined ? createDocAccessor(template, ['template']) : undefined,
45
- }),
45
+ text &&
46
+ createDataExtensions({
47
+ id,
48
+ text: createDocAccessor(text, ['content']),
49
+ }),
46
50
  createBasicExtensions({
47
51
  bracketMatching: false,
52
+ lineNumbers: true,
48
53
  lineWrapping: true,
54
+ monospace: true,
49
55
  placeholder: t('template placeholder'),
50
56
  }),
51
57
  createThemeExtensions({
52
58
  themeMode,
53
- slots: {
54
- content: { className: '!p-3' },
55
- },
56
59
  }),
57
60
 
58
61
  // https://github.com/xiechao/lang-handlebars
59
62
  new LanguageSupport(handlebarsLanguage, syntaxHighlighting(handlebarsHighlightStyle)),
60
- ],
61
- }),
62
- [themeMode, prompt],
63
- );
63
+ ].filter(isNotFalsy),
64
+ };
65
+ }, [themeMode, template.source?.target]);
64
66
 
65
- return <div ref={parentRef} className={mx(classNames)} />;
67
+ return <div ref={parentRef} className={mx('h-full', classNames)} />;
66
68
  };
67
69
 
68
70
  /**
69
71
  * https://github.com/xiechao/lang-handlebars/blob/direct/src/highlight.js
70
72
  */
71
73
  export const handlebarsHighlightStyle = HighlightStyle.define([
72
- { tag: tags.tagName, class: 'text-redText' }, // Braces.
73
- { tag: tags.variableName, class: 'text-blueText' },
74
- { tag: tags.keyword, class: 'text-greenText' },
75
- { tag: tags.comment, class: 'text-subdued' },
74
+ {
75
+ // Braces.
76
+ tag: tags.tagName,
77
+ class: 'text-redText',
78
+ },
79
+ {
80
+ tag: tags.variableName,
81
+ class: 'text-blueText',
82
+ },
83
+ {
84
+ tag: tags.keyword,
85
+ class: 'text-greenText',
86
+ },
87
+ {
88
+ tag: tags.comment,
89
+ class: 'text-subdued',
90
+ },
76
91
  ]);
@@ -4,38 +4,38 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type Meta } from '@storybook/react';
7
+ import { type Meta } from '@storybook/react-vite';
8
8
  import React, { useState } from 'react';
9
9
 
10
- import { Obj } from '@dxos/echo';
10
+ import { Blueprint, Template } from '@dxos/blueprints';
11
11
  import { useClient } from '@dxos/react-client';
12
12
  import { withClientProvider } from '@dxos/react-client/testing';
13
13
  import { withLayout, withTheme } from '@dxos/storybook-utils';
14
+ import { trim } from '@dxos/util';
14
15
 
15
16
  import { TemplateForm } from './TemplateForm';
16
- import translations from '../../translations';
17
- import { TemplateType } from '../../types';
17
+ import { translations } from '../../translations';
18
18
 
19
- const TEMPLATE = [
20
- 'You are a machine that is an expert chess player.',
21
- 'The move history of the current game is: {{history}}',
22
- 'If asked to suggest a move explain why it is a good move.',
23
- '',
24
- '---',
25
- '',
26
- '{{input}}',
27
- ].join('\n');
19
+ const TEMPLATE = trim`
20
+ You are a machine that is an expert chess player.
21
+ The move history of the current game is: {{history}}
22
+ If asked to suggest a move explain why it is a good move.
23
+
24
+ ---
25
+
26
+ {{input}},
27
+ `;
28
28
 
29
29
  const DefaultStory = () => {
30
30
  const client = useClient();
31
- const [template] = useState(() => {
31
+ const [blueprint] = useState(() => {
32
32
  const space = client.spaces.default;
33
- return space.db.add(Obj.make(TemplateType, { source: TEMPLATE, kind: { include: 'manual' } }));
33
+ return space.db.add(Blueprint.make({ name: 'Test', instructions: { source: TEMPLATE } }));
34
34
  });
35
35
 
36
36
  return (
37
37
  <div role='none' className='flex w-[40rem] border border-separator overflow-hidden'>
38
- <TemplateForm template={template} />
38
+ <TemplateForm id={blueprint.id} template={blueprint.instructions} />
39
39
  </div>
40
40
  );
41
41
  };
@@ -48,7 +48,7 @@ const meta: Meta<typeof TemplateForm> = {
48
48
  withClientProvider({
49
49
  createIdentity: true,
50
50
  createSpace: true,
51
- types: [TemplateType],
51
+ types: [Template.Template],
52
52
  }),
53
53
  withLayout({ fullscreen: true, classNames: 'flex justify-center' }),
54
54
  withTheme,
@@ -5,34 +5,34 @@
5
5
  import { type Schema } from 'effect';
6
6
  import React, { Fragment, useEffect } from 'react';
7
7
 
8
+ import { type Template } from '@dxos/blueprints';
8
9
  import { Input, Select, useTranslation } from '@dxos/react-ui';
9
10
  import { attentionSurface, groupBorder, mx } from '@dxos/react-ui-theme';
10
11
  import { isNonNullable } from '@dxos/util';
11
12
 
12
13
  import { TemplateEditor } from './TemplateEditor';
13
- import { ASSISTANT_PLUGIN } from '../../meta';
14
- import { type TemplateInput, TemplateInputType, type TemplateType } from '../../types';
14
+ import { meta } from '../../meta';
15
15
 
16
16
  export type TemplateFormProps = {
17
- template: TemplateType;
17
+ id: string;
18
+ template: Template.Template;
18
19
  schema?: Schema.Schema<any, any, any>;
19
20
  commandEditable?: boolean;
20
21
  };
21
22
 
22
- export const TemplateForm = ({ template, commandEditable = true }: TemplateFormProps) => {
23
- const { t } = useTranslation(ASSISTANT_PLUGIN);
24
-
23
+ export const TemplateForm = ({ id, template, commandEditable = true }: TemplateFormProps) => {
24
+ const { t } = useTranslation(meta.id);
25
25
  usePromptInputs(template);
26
26
 
27
27
  return (
28
28
  <div className={mx('flex flex-col w-full overflow-hidden gap-4', groupBorder)}>
29
- {commandEditable && (
29
+ {/* {commandEditable && (
30
30
  <div className='flex items-center pl-4'>
31
31
  <span className='text-neutral-500'>/</span>
32
32
  <Input.Root>
33
33
  <Input.TextInput
34
34
  placeholder={t('command placeholder')}
35
- classNames={mx('is-full bg-transparent m-2')}
35
+ classNames='is-full bg-transparent m-2'
36
36
  value={template.command ?? ''}
37
37
  onChange={(event) => {
38
38
  template.command = event.target.value.replace(/\w/g, '');
@@ -40,9 +40,9 @@ export const TemplateForm = ({ template, commandEditable = true }: TemplateFormP
40
40
  />
41
41
  </Input.Root>
42
42
  </div>
43
- )}
43
+ )} */}
44
44
 
45
- <TemplateEditor template={template} classNames={[attentionSurface, 'min-h-[120px]']} />
45
+ <TemplateEditor id={id} template={template} classNames={[attentionSurface, 'min-h-[120px]']} />
46
46
 
47
47
  {(template.inputs?.length ?? 0) > 0 && (
48
48
  <div className='grid grid-cols-[10rem_10rem_1fr] gap-1 items-center'>
@@ -52,17 +52,17 @@ export const TemplateForm = ({ template, commandEditable = true }: TemplateFormP
52
52
 
53
53
  <Input.Root>
54
54
  <Select.Root
55
- value={String(input.type)}
56
- onValueChange={(type) => {
57
- input.type = getInputType(type) ?? TemplateInputType.VALUE;
55
+ value={input.kind}
56
+ onValueChange={(kind) => {
57
+ input.kind = kind as Template.InputKind;
58
58
  }}
59
59
  >
60
60
  <Select.TriggerButton placeholder='Type' classNames='is-full' />
61
61
  <Select.Portal>
62
62
  <Select.Content>
63
63
  <Select.Viewport>
64
- {inputTypes.map(({ value, label }) => (
65
- <Select.Option key={value} value={String(value)}>
64
+ {inputs.map(({ kind, label }) => (
65
+ <Select.Option key={kind} value={kind}>
66
66
  {label}
67
67
  </Select.Option>
68
68
  ))}
@@ -73,26 +73,20 @@ export const TemplateForm = ({ template, commandEditable = true }: TemplateFormP
73
73
  </Input.Root>
74
74
 
75
75
  <div>
76
- {input.type !== undefined &&
77
- [
78
- TemplateInputType.VALUE,
79
- TemplateInputType.CONTEXT,
80
- TemplateInputType.RESOLVER,
81
- TemplateInputType.SCHEMA,
82
- ].includes(input.type) && (
83
- <div>
84
- <Input.Root>
85
- <Input.TextInput
86
- placeholder={t('command placeholder')}
87
- classNames={mx('is-full bg-transparent')}
88
- value={input.value ?? ''}
89
- onChange={(event) => {
90
- input.value = event.target.value;
91
- }}
92
- />
93
- </Input.Root>
94
- </div>
95
- )}
76
+ {input.kind !== undefined && ['value', 'context', 'resolver', 'schema'].includes(input.kind) && (
77
+ <div>
78
+ <Input.Root>
79
+ <Input.TextInput
80
+ placeholder={t('command placeholder')}
81
+ classNames='is-full bg-transparent'
82
+ value={input.default ?? ''}
83
+ onChange={(event) => {
84
+ input.default = event.target.value;
85
+ }}
86
+ />
87
+ </Input.Root>
88
+ </div>
89
+ )}
96
90
  </div>
97
91
  </Fragment>
98
92
  ))}
@@ -102,57 +96,56 @@ export const TemplateForm = ({ template, commandEditable = true }: TemplateFormP
102
96
  );
103
97
  };
104
98
 
105
- const inputTypes = [
99
+ // TODO(burdon): Translations.
100
+ const inputs: { kind: Template.InputKind; label: string }[] = [
106
101
  {
107
- value: TemplateInputType.VALUE,
102
+ kind: 'value',
108
103
  label: 'Value',
109
104
  },
110
105
  {
111
- value: TemplateInputType.PASS_THROUGH,
106
+ kind: 'pass-through',
112
107
  label: 'Pass through',
113
108
  },
114
109
  {
115
- value: TemplateInputType.RETRIEVER,
110
+ kind: 'retriever',
116
111
  label: 'Retriever',
117
112
  },
118
- // {
119
- // value: TemplateInputType.FUNCTION,
120
- // label: 'Function',
121
- // },
122
- // {
123
- // value: TemplateInputType.QUERY,
124
- // label: 'Query',
125
- // },
126
113
  {
127
- value: TemplateInputType.RESOLVER,
114
+ kind: 'function',
115
+ label: 'Function',
116
+ },
117
+ {
118
+ kind: 'query',
119
+ label: 'Query',
120
+ },
121
+ {
122
+ kind: 'resolver',
128
123
  label: 'Resolver',
129
124
  },
130
125
  {
131
- value: TemplateInputType.CONTEXT,
126
+ kind: 'context',
132
127
  label: 'Context',
133
128
  },
134
129
  {
135
- value: TemplateInputType.SCHEMA,
130
+ kind: 'schema',
136
131
  label: 'Schema',
137
132
  },
138
133
  ];
139
134
 
140
- export const nameRegex = /\{\{([\w-]+)\}\}/;
141
-
142
- const getInputType = (type: string) => inputTypes.find(({ value }) => String(value) === type)?.value;
135
+ export const NAME_REGEXP = /\{\{([\w-]+)\}\}/;
143
136
 
144
- const usePromptInputs = (template: TemplateType) => {
137
+ const usePromptInputs = (template: Template.Template) => {
145
138
  useEffect(() => {
146
139
  const text = template.source ?? '';
147
140
  if (!template.inputs) {
148
141
  template.inputs = []; // TODO(burdon): Required?
149
142
  }
150
143
 
151
- const regex = new RegExp(nameRegex, 'g');
152
- const variables = new Set<string>([...text.matchAll(regex)].map((m) => m[1]));
144
+ const regex = new RegExp(NAME_REGEXP, 'g');
145
+ const variables = new Set<string>([...(text.target?.content.matchAll(regex) ?? [])].map((m) => m[1]));
153
146
 
154
147
  // Create map of unclaimed inputs.
155
- const unclaimed = new Map<string, TemplateInput>(
148
+ const unclaimed = new Map<string, Template.Input>(
156
149
  template.inputs?.filter(isNonNullable).map((input) => [input.name, input]),
157
150
  );
158
151
  const missing: string[] = [];
@@ -4,21 +4,21 @@
4
4
 
5
5
  import '@dxos-theme';
6
6
 
7
- import { type Meta } from '@storybook/react';
7
+ import { type Meta } from '@storybook/react-vite';
8
8
  import React from 'react';
9
9
 
10
10
  import { IntentPlugin, Capabilities, useCapabilities, SettingsPlugin } from '@dxos/app-framework';
11
11
  import { withPluginManager } from '@dxos/app-framework/testing';
12
- import { capabilities } from '@dxos/artifact-testing';
12
+ import { capabilities } from '@dxos/assistant-testing';
13
13
  import { ChessPlugin } from '@dxos/plugin-chess';
14
14
  import { ClientPlugin } from '@dxos/plugin-client';
15
15
  import { MapPlugin } from '@dxos/plugin-map';
16
16
  import { SpacePlugin } from '@dxos/plugin-space';
17
17
  import { TablePlugin } from '@dxos/plugin-table';
18
- import { withLayout, withSignals, withTheme } from '@dxos/storybook-utils';
18
+ import { withLayout, withTheme } from '@dxos/storybook-utils';
19
19
 
20
20
  import { Toolbox, type ToolboxProps } from './Toolbox';
21
- import translations from '../../translations';
21
+ import { translations } from '../../translations';
22
22
 
23
23
  const DefaultStory = (props: ToolboxProps) => {
24
24
  const artifactDefinitions = useCapabilities(Capabilities.ArtifactDefinition);
@@ -26,7 +26,7 @@ const DefaultStory = (props: ToolboxProps) => {
26
26
  <Toolbox
27
27
  {...props}
28
28
  artifacts={artifactDefinitions}
29
- classNames='w-[30rem] h-[15rem] rounded-md border border-separator py-1'
29
+ classNames='w-[30rem] h-[15rem] rounded-sm border border-separator py-1'
30
30
  />
31
31
  );
32
32
  };
@@ -36,7 +36,6 @@ const meta: Meta<typeof Toolbox> = {
36
36
  component: Toolbox,
37
37
  render: DefaultStory,
38
38
  decorators: [
39
- withSignals,
40
39
  withPluginManager({
41
40
  plugins: [
42
41
  ClientPlugin({
@@ -6,26 +6,65 @@ import React, { useState, useEffect, Fragment, type FC } from 'react';
6
6
 
7
7
  import { parseToolName, type Tool } from '@dxos/ai';
8
8
  import { Capabilities, useCapabilities } from '@dxos/app-framework';
9
- import { type ArtifactDefinition } from '@dxos/artifact';
9
+ import { type ArtifactDefinition } from '@dxos/blueprints';
10
+ import { type Blueprint } from '@dxos/blueprints';
11
+ import { type Ref } from '@dxos/echo';
10
12
  import { FunctionType } from '@dxos/functions';
11
13
  import { log } from '@dxos/log';
12
14
  import { Filter, type Space, useQuery } from '@dxos/react-client/echo';
13
15
  import { type ThemedClassName } from '@dxos/react-ui';
16
+ import { useTranslation } from '@dxos/react-ui';
14
17
  import { mx } from '@dxos/react-ui-theme';
15
18
 
19
+ import { type ChatProcessor } from '../../hooks';
20
+ import { meta } from '../../meta';
16
21
  import { createToolsFromService } from '../../tools';
17
22
  import { ServiceType } from '../../types';
18
23
 
19
24
  export type ToolboxProps = ThemedClassName<{
25
+ blueprints?: readonly Ref.Ref<Blueprint.Blueprint>[];
20
26
  artifacts?: ArtifactDefinition[];
21
27
  services?: { service: ServiceType; tools: Tool[] }[];
22
28
  functions?: FunctionType[];
29
+ activeBlueprints?: readonly Ref.Ref<Blueprint.Blueprint>[];
23
30
  striped?: boolean;
24
31
  }>;
25
32
 
26
- export const Toolbox = ({ classNames, artifacts, functions, services, striped }: ToolboxProps) => {
33
+ export const Toolbox = ({
34
+ classNames,
35
+ artifacts,
36
+ functions,
37
+ services,
38
+ blueprints,
39
+ activeBlueprints,
40
+ striped,
41
+ }: ToolboxProps) => {
42
+ const { t } = useTranslation(meta.id);
43
+
27
44
  return (
28
45
  <div className={mx('flex flex-col overflow-y-auto box-content', classNames)}>
46
+ {blueprints && blueprints.length > 0 && (
47
+ <Section
48
+ title='Blueprints'
49
+ items={blueprints.map(({ target }) => ({
50
+ name: target?.name ?? '',
51
+ description: target?.description ?? '',
52
+ subitems: target?.tools.map((toolId) => ({ name: `∙ ${parseToolName(toolId)}` })),
53
+ }))}
54
+ />
55
+ )}
56
+
57
+ {activeBlueprints && activeBlueprints.length > 0 && (
58
+ <Section
59
+ title='Blueprints'
60
+ items={activeBlueprints.map(({ target }) => ({
61
+ name: target?.name ?? '',
62
+ description: target?.description ?? '',
63
+ subitems: target?.tools.map((toolId) => ({ name: `∙ ${parseToolName(toolId)}` })),
64
+ }))}
65
+ />
66
+ )}
67
+
29
68
  {artifacts && artifacts.length > 0 && (
30
69
  <Section
31
70
  title='Artifacts'
@@ -51,6 +90,12 @@ export const Toolbox = ({ classNames, artifacts, functions, services, striped }:
51
90
  {functions && functions.length > 0 && (
52
91
  <Section title='Functions' items={functions.map(({ name, description }) => ({ name, description }))} />
53
92
  )}
93
+
94
+ {!blueprints?.length &&
95
+ !activeBlueprints?.length &&
96
+ !artifacts?.length &&
97
+ !services?.length &&
98
+ !functions?.length && <div>{t('no tools')}</div>}
54
99
  </div>
55
100
  );
56
101
  };
@@ -89,7 +134,12 @@ const Section: FC<{
89
134
  );
90
135
  };
91
136
 
92
- export const ToolboxContainer = ({ classNames, space }: ThemedClassName<{ space?: Space }>) => {
137
+ export type ToolboxContainerProps = ThemedClassName<{
138
+ space?: Space;
139
+ processor?: ChatProcessor;
140
+ }>;
141
+
142
+ export const ToolboxContainer = ({ classNames, space, processor }: ToolboxContainerProps) => {
93
143
  // Plugin artifacts.
94
144
  const artifactDefinitions = useCapabilities(Capabilities.ArtifactDefinition);
95
145
 
@@ -111,6 +161,12 @@ export const ToolboxContainer = ({ classNames, space }: ThemedClassName<{ space?
111
161
  const functions = useQuery(space, Filter.type(FunctionType));
112
162
 
113
163
  return (
114
- <Toolbox classNames={classNames} artifacts={artifactDefinitions} services={serviceTools} functions={functions} />
164
+ <Toolbox
165
+ classNames={classNames}
166
+ blueprints={processor?.context.blueprints.value}
167
+ artifacts={artifactDefinitions}
168
+ services={serviceTools}
169
+ functions={functions}
170
+ />
115
171
  );
116
172
  };
@@ -4,18 +4,17 @@
4
4
 
5
5
  import { lazy } from 'react';
6
6
 
7
- export * from './AmbientDialog';
8
7
  export * from './AssistantSettings';
9
- export * from './Prompt';
8
+ export * from './Chat';
10
9
  export * from './PromptSettings';
11
10
  export * from './TemplateEditor';
12
- export * from './Thread';
13
11
  export * from './Toolbox';
14
12
 
15
13
  // TODO(burdon): Lazy loading causes issues with Tabster.
16
14
  // Repro: open assistant dialog then close.
17
15
  // https://github.com/microsoft/fluentui/issues/34020
18
- export const AssistantDialog = lazy(() => import('./AssistantDialog'));
16
+
19
17
  export const BlueprintContainer = lazy(() => import('./BlueprintContainer'));
20
18
  export const ChatContainer = lazy(() => import('./ChatContainer'));
21
- export const TemplateContainer = lazy(() => import('./TemplateContainer'));
19
+ export const ChatDialog = lazy(() => import('./ChatDialog'));
20
+ export const SequenceContainer = lazy(() => import('./SequenceContainer'));
package/src/events.ts CHANGED
@@ -4,8 +4,8 @@
4
4
 
5
5
  import { Events } from '@dxos/app-framework';
6
6
 
7
- import { ASSISTANT_PLUGIN } from './meta';
7
+ import { meta } from './meta';
8
8
 
9
9
  export namespace AssistantEvents {
10
- export const AiClientReady = Events.createStateEvent(`${ASSISTANT_PLUGIN}/ai-client-ready`);
10
+ export const AiClientReady = Events.createStateEvent(`${meta.id}/ai-client-ready`);
11
11
  }
@@ -4,12 +4,13 @@
4
4
 
5
5
  import { describe, it } from 'vitest';
6
6
 
7
- import { ChatProcessor } from './processor';
7
+ import { ChatProcessor } from './chat-processor';
8
8
 
9
9
  describe('ChatProcessor', () => {
10
10
  it('should be instantiable', ({ expect }) => {
11
+ const services = {} as any; // TODO(burdon): Create mock.
11
12
  const client = {} as any; // TODO(burdon): Create mock.
12
- const processor = new ChatProcessor(client);
13
+ const processor = new ChatProcessor(services, client);
13
14
  expect(processor).toBeDefined();
14
15
  });
15
16
  });