@dxos/plugin-automation 0.7.5-labs.e27f9b9 → 0.7.5-labs.ea4b4c2

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 (224) hide show
  1. package/dist/lib/browser/AutomationPanel-VW2XIUPU.mjs +8 -0
  2. package/dist/lib/browser/ChatContainer-5TAVTN3T.mjs +12 -0
  3. package/dist/lib/browser/{ai-client-AARXEMMJ.mjs → ai-client-5CNY6JBF.mjs} +3 -3
  4. package/dist/lib/browser/{app-graph-builder-B4U34VSR.mjs → app-graph-builder-FZGK55G7.mjs} +39 -4
  5. package/dist/lib/browser/app-graph-builder-FZGK55G7.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-HZ4TA7HY.mjs → chunk-2H2EUYXL.mjs} +2 -2
  7. package/dist/lib/browser/{chunk-5SLV6AUA.mjs → chunk-DVE33EZL.mjs} +525 -290
  8. package/dist/lib/browser/chunk-DVE33EZL.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-IYSMXX6Q.mjs → chunk-MJK7GL5P.mjs} +68 -44
  10. package/dist/lib/browser/chunk-MJK7GL5P.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-RAVNWHNE.mjs → chunk-NQFZ6XRX.mjs} +6 -5
  12. package/dist/lib/browser/chunk-NQFZ6XRX.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-7XADMUOW.mjs → chunk-Q4IMHYGH.mjs} +21 -76
  14. package/dist/lib/browser/chunk-Q4IMHYGH.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-HKX3D3ZP.mjs → chunk-R4JH4TLE.mjs} +4 -2
  16. package/dist/lib/browser/chunk-R4JH4TLE.mjs.map +7 -0
  17. package/dist/lib/browser/index.mjs +21 -15
  18. package/dist/lib/browser/index.mjs.map +3 -3
  19. package/dist/lib/browser/{intent-resolver-754MPV7H.mjs → intent-resolver-BWAXKT27.mjs} +3 -3
  20. package/dist/lib/browser/meta.json +1 -1
  21. package/dist/lib/browser/{react-surface-4QZ6AKBF.mjs → react-surface-ILBDBZCN.mjs} +17 -9
  22. package/dist/lib/browser/react-surface-ILBDBZCN.mjs.map +7 -0
  23. package/dist/lib/browser/types/index.mjs +6 -6
  24. package/dist/lib/node/{AutomationPanel-LRDEDGXI.cjs → AutomationPanel-G6EDDYWW.cjs} +7 -7
  25. package/dist/lib/node/{AutomationPanel-LRDEDGXI.cjs.map → AutomationPanel-G6EDDYWW.cjs.map} +2 -2
  26. package/dist/lib/node/{ChatContainer-6LZX4K2Z.cjs → ChatContainer-EN24W3K4.cjs} +10 -10
  27. package/dist/lib/node/ChatContainer-EN24W3K4.cjs.map +7 -0
  28. package/dist/lib/node/{ai-client-SA35GN5Q.cjs → ai-client-FKLPDELV.cjs} +7 -7
  29. package/dist/lib/node/{app-graph-builder-ENVDOPS4.cjs → app-graph-builder-T76NYV42.cjs} +48 -14
  30. package/dist/lib/node/app-graph-builder-T76NYV42.cjs.map +7 -0
  31. package/dist/lib/node/{chunk-6VMSH4P6.cjs → chunk-CJGJXNY3.cjs} +549 -327
  32. package/dist/lib/node/chunk-CJGJXNY3.cjs.map +7 -0
  33. package/dist/lib/node/{chunk-5VF5JKUN.cjs → chunk-EQYHOTGG.cjs} +8 -5
  34. package/dist/lib/node/chunk-EQYHOTGG.cjs.map +7 -0
  35. package/dist/lib/node/chunk-GB7245FH.cjs +173 -0
  36. package/dist/lib/node/chunk-GB7245FH.cjs.map +7 -0
  37. package/dist/lib/node/{chunk-HEYQONXC.cjs → chunk-HMBKP6VG.cjs} +82 -60
  38. package/dist/lib/node/chunk-HMBKP6VG.cjs.map +7 -0
  39. package/dist/lib/node/{chunk-WWU5FVAO.cjs → chunk-QXIHYOMF.cjs} +10 -9
  40. package/dist/lib/node/chunk-QXIHYOMF.cjs.map +7 -0
  41. package/dist/lib/node/{chunk-ZS5RZ7RM.cjs → chunk-U5Z7LFWB.cjs} +6 -6
  42. package/dist/lib/node/index.cjs +81 -75
  43. package/dist/lib/node/index.cjs.map +3 -3
  44. package/dist/lib/node/{intent-resolver-CNVBSG4E.cjs → intent-resolver-C6OKFVEW.cjs} +8 -8
  45. package/dist/lib/node/meta.json +1 -1
  46. package/dist/lib/node/{react-surface-5HYLBDC3.cjs → react-surface-LWDY7SQG.cjs} +24 -18
  47. package/dist/lib/node/react-surface-LWDY7SQG.cjs.map +7 -0
  48. package/dist/lib/node/types/index.cjs +13 -13
  49. package/dist/lib/node/types/index.cjs.map +1 -1
  50. package/dist/lib/node-esm/{AutomationPanel-ZV7VEEPP.mjs → AutomationPanel-V3IWQAMO.mjs} +3 -3
  51. package/dist/lib/node-esm/{ChatContainer-PPVMC2FC.mjs → ChatContainer-CNTY3C2D.mjs} +5 -5
  52. package/dist/lib/node-esm/{ai-client-2ZA4TYFZ.mjs → ai-client-XGNA6SJ5.mjs} +3 -3
  53. package/dist/lib/node-esm/{app-graph-builder-IYOUCQZT.mjs → app-graph-builder-IJQEN7WT.mjs} +39 -4
  54. package/dist/lib/node-esm/app-graph-builder-IJQEN7WT.mjs.map +7 -0
  55. package/dist/lib/node-esm/{chunk-MS7OIGVR.mjs → chunk-6HLBYDUI.mjs} +6 -5
  56. package/dist/lib/node-esm/chunk-6HLBYDUI.mjs.map +7 -0
  57. package/dist/lib/node-esm/{chunk-EVTLHDM2.mjs → chunk-DNCXRGAF.mjs} +21 -76
  58. package/dist/lib/node-esm/chunk-DNCXRGAF.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-X3LPRWIL.mjs → chunk-EMVA6QUT.mjs} +4 -2
  60. package/dist/lib/node-esm/chunk-EMVA6QUT.mjs.map +7 -0
  61. package/dist/lib/node-esm/{chunk-ISYLEDVU.mjs → chunk-IJRTDSKN.mjs} +2 -2
  62. package/dist/lib/node-esm/{chunk-WISKXX7U.mjs → chunk-QP47VJT6.mjs} +525 -290
  63. package/dist/lib/node-esm/chunk-QP47VJT6.mjs.map +7 -0
  64. package/dist/lib/node-esm/{chunk-3KB5HRXA.mjs → chunk-ZLIAMW45.mjs} +68 -44
  65. package/dist/lib/node-esm/chunk-ZLIAMW45.mjs.map +7 -0
  66. package/dist/lib/node-esm/index.mjs +21 -15
  67. package/dist/lib/node-esm/index.mjs.map +3 -3
  68. package/dist/lib/node-esm/{intent-resolver-RQBXW442.mjs → intent-resolver-DCP4ZDBA.mjs} +3 -3
  69. package/dist/lib/node-esm/meta.json +1 -1
  70. package/dist/lib/node-esm/{react-surface-SS5WCRJ2.mjs → react-surface-SBDXFVIN.mjs} +17 -9
  71. package/dist/lib/node-esm/react-surface-SBDXFVIN.mjs.map +7 -0
  72. package/dist/lib/node-esm/types/index.mjs +6 -6
  73. package/dist/types/src/capabilities/app-graph-builder.d.ts +23 -22
  74. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  75. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  76. package/dist/types/src/components/AmbientChatDialog/AmbientChatDialog.d.ts +3 -0
  77. package/dist/types/src/components/AmbientChatDialog/AmbientChatDialog.d.ts.map +1 -0
  78. package/dist/types/src/components/AmbientChatDialog/index.d.ts +2 -0
  79. package/dist/types/src/components/AmbientChatDialog/index.d.ts.map +1 -0
  80. package/dist/types/src/components/Box/StatusLine.d.ts.map +1 -0
  81. package/dist/types/src/components/Box/StatusLine.stories.d.ts.map +1 -0
  82. package/dist/types/src/components/Box/Tabbed.d.ts +15 -0
  83. package/dist/types/src/components/Box/Tabbed.d.ts.map +1 -0
  84. package/dist/types/src/components/Box/Tabbed.stories.d.ts.map +1 -0
  85. package/dist/types/src/components/{Thread → Box}/ToggleContainer.d.ts +3 -3
  86. package/dist/types/src/components/Box/ToggleContainer.d.ts.map +1 -0
  87. package/dist/types/src/components/Box/ToggleContainer.stories.d.ts.map +1 -0
  88. package/dist/types/src/components/Box/index.d.ts +4 -0
  89. package/dist/types/src/components/Box/index.d.ts.map +1 -0
  90. package/dist/types/src/components/ChatContainer/ChatContainer.d.ts +0 -1
  91. package/dist/types/src/components/ChatContainer/ChatContainer.d.ts.map +1 -1
  92. package/dist/types/src/components/Prompt/Prompt.d.ts +7 -0
  93. package/dist/types/src/components/Prompt/Prompt.d.ts.map +1 -0
  94. package/dist/types/src/components/Prompt/Prompt.stories.d.ts +8 -0
  95. package/dist/types/src/components/Prompt/Prompt.stories.d.ts.map +1 -0
  96. package/dist/types/src/components/Prompt/index.d.ts +2 -0
  97. package/dist/types/src/components/Prompt/index.d.ts.map +1 -0
  98. package/dist/types/src/components/Prompt/prompt-autocomplete.d.ts +20 -0
  99. package/dist/types/src/components/Prompt/prompt-autocomplete.d.ts.map +1 -0
  100. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.stories.d.ts.map +1 -1
  101. package/dist/types/src/components/Thread/Thread.stories.d.ts +1 -0
  102. package/dist/types/src/components/Thread/Thread.stories.d.ts.map +1 -1
  103. package/dist/types/src/components/Thread/ThreadMessage.d.ts.map +1 -1
  104. package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +1 -1
  105. package/dist/types/src/components/index.d.ts +1 -0
  106. package/dist/types/src/components/index.d.ts.map +1 -1
  107. package/dist/types/src/hooks/index.d.ts +3 -1
  108. package/dist/types/src/hooks/index.d.ts.map +1 -1
  109. package/dist/types/src/hooks/processor.d.ts +7 -2
  110. package/dist/types/src/hooks/processor.d.ts.map +1 -1
  111. package/dist/types/src/hooks/useChatProcessor.d.ts +7 -0
  112. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -0
  113. package/dist/types/src/hooks/useMessageQueue.d.ts +41 -0
  114. package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -0
  115. package/dist/types/src/hooks/useServices.d.ts +7 -0
  116. package/dist/types/src/hooks/useServices.d.ts.map +1 -0
  117. package/dist/types/src/meta.d.ts +1 -0
  118. package/dist/types/src/meta.d.ts.map +1 -1
  119. package/dist/types/src/testing/index.d.ts +2 -1
  120. package/dist/types/src/testing/index.d.ts.map +1 -1
  121. package/dist/types/src/testing/{testing.d.ts → test-functions.d.ts} +1 -1
  122. package/dist/types/src/testing/test-functions.d.ts.map +1 -0
  123. package/dist/types/src/testing/test-services.d.ts +5 -0
  124. package/dist/types/src/testing/test-services.d.ts.map +1 -0
  125. package/dist/types/src/translations.d.ts +3 -0
  126. package/dist/types/src/translations.d.ts.map +1 -1
  127. package/dist/types/src/types/registry.d.ts +7 -6
  128. package/dist/types/src/types/registry.d.ts.map +1 -1
  129. package/dist/types/src/types/schema.d.ts +94 -69
  130. package/dist/types/src/types/schema.d.ts.map +1 -1
  131. package/package.json +52 -50
  132. package/src/AutomationPlugin.tsx +7 -7
  133. package/src/capabilities/app-graph-builder.ts +34 -3
  134. package/src/capabilities/react-surface.tsx +12 -4
  135. package/src/components/AmbientChatDialog/AmbientChatDialog.tsx +26 -0
  136. package/src/components/AmbientChatDialog/index.ts +5 -0
  137. package/src/components/{Thread → Box}/StatusLine.tsx +1 -1
  138. package/src/components/{Thread → Box}/Tabbed.stories.tsx +2 -3
  139. package/src/components/Box/Tabbed.tsx +89 -0
  140. package/src/components/{Thread → Box}/ToggleContainer.stories.tsx +1 -2
  141. package/src/components/{Thread → Box}/ToggleContainer.tsx +28 -23
  142. package/src/components/Box/index.ts +7 -0
  143. package/src/components/ChatContainer/ChatContainer.tsx +15 -80
  144. package/src/components/Prompt/Prompt.stories.tsx +50 -0
  145. package/src/components/Prompt/Prompt.tsx +36 -0
  146. package/src/components/Prompt/index.ts +5 -0
  147. package/src/components/Prompt/prompt-autocomplete.ts +200 -0
  148. package/src/components/PromptEditor/PromptEditor.stories.tsx +3 -3
  149. package/src/components/ServiceRegistry/ServiceRegistry.stories.tsx +2 -1
  150. package/src/components/ServiceRegistry/ServiceRegistry.tsx +7 -7
  151. package/src/components/Thread/Thread.stories.tsx +8 -1
  152. package/src/components/Thread/Thread.tsx +2 -2
  153. package/src/components/Thread/ThreadMessage.tsx +58 -28
  154. package/src/components/TriggerEditor/TriggerEditor.tsx +8 -5
  155. package/src/components/index.ts +1 -0
  156. package/src/hooks/index.ts +3 -1
  157. package/src/hooks/processor.ts +16 -7
  158. package/src/hooks/useChatProcessor.tsx +86 -0
  159. package/src/hooks/useMessageQueue.ts +23 -0
  160. package/src/hooks/{useServiceRegistry.ts → useServices.ts} +8 -2
  161. package/src/meta.ts +4 -1
  162. package/src/testing/index.ts +2 -1
  163. package/src/testing/test-services.ts +131 -0
  164. package/src/translations.ts +1 -0
  165. package/src/types/registry.ts +17 -80
  166. package/src/types/schema.ts +20 -8
  167. package/dist/lib/browser/AutomationPanel-WFJZAW4F.mjs +0 -8
  168. package/dist/lib/browser/ChatContainer-OFCOZ5T2.mjs +0 -12
  169. package/dist/lib/browser/app-graph-builder-B4U34VSR.mjs.map +0 -7
  170. package/dist/lib/browser/chunk-5SLV6AUA.mjs.map +0 -7
  171. package/dist/lib/browser/chunk-7XADMUOW.mjs.map +0 -7
  172. package/dist/lib/browser/chunk-HKX3D3ZP.mjs.map +0 -7
  173. package/dist/lib/browser/chunk-IYSMXX6Q.mjs.map +0 -7
  174. package/dist/lib/browser/chunk-RAVNWHNE.mjs.map +0 -7
  175. package/dist/lib/browser/react-surface-4QZ6AKBF.mjs.map +0 -7
  176. package/dist/lib/node/ChatContainer-6LZX4K2Z.cjs.map +0 -7
  177. package/dist/lib/node/app-graph-builder-ENVDOPS4.cjs.map +0 -7
  178. package/dist/lib/node/chunk-5VF5JKUN.cjs.map +0 -7
  179. package/dist/lib/node/chunk-6VMSH4P6.cjs.map +0 -7
  180. package/dist/lib/node/chunk-HEYQONXC.cjs.map +0 -7
  181. package/dist/lib/node/chunk-LU4HQWJD.cjs +0 -226
  182. package/dist/lib/node/chunk-LU4HQWJD.cjs.map +0 -7
  183. package/dist/lib/node/chunk-WWU5FVAO.cjs.map +0 -7
  184. package/dist/lib/node/react-surface-5HYLBDC3.cjs.map +0 -7
  185. package/dist/lib/node-esm/app-graph-builder-IYOUCQZT.mjs.map +0 -7
  186. package/dist/lib/node-esm/chunk-3KB5HRXA.mjs.map +0 -7
  187. package/dist/lib/node-esm/chunk-EVTLHDM2.mjs.map +0 -7
  188. package/dist/lib/node-esm/chunk-MS7OIGVR.mjs.map +0 -7
  189. package/dist/lib/node-esm/chunk-WISKXX7U.mjs.map +0 -7
  190. package/dist/lib/node-esm/chunk-X3LPRWIL.mjs.map +0 -7
  191. package/dist/lib/node-esm/react-surface-SS5WCRJ2.mjs.map +0 -7
  192. package/dist/types/src/components/Thread/ScrollContainer.d.ts +0 -15
  193. package/dist/types/src/components/Thread/ScrollContainer.d.ts.map +0 -1
  194. package/dist/types/src/components/Thread/StatusLine.d.ts.map +0 -1
  195. package/dist/types/src/components/Thread/StatusLine.stories.d.ts.map +0 -1
  196. package/dist/types/src/components/Thread/Tabbed.d.ts +0 -9
  197. package/dist/types/src/components/Thread/Tabbed.d.ts.map +0 -1
  198. package/dist/types/src/components/Thread/Tabbed.stories.d.ts.map +0 -1
  199. package/dist/types/src/components/Thread/ToggleContainer.d.ts.map +0 -1
  200. package/dist/types/src/components/Thread/ToggleContainer.stories.d.ts.map +0 -1
  201. package/dist/types/src/hooks/useServiceRegistry.d.ts +0 -3
  202. package/dist/types/src/hooks/useServiceRegistry.d.ts.map +0 -1
  203. package/dist/types/src/testing/testing.d.ts.map +0 -1
  204. package/src/components/Thread/ScrollContainer.tsx +0 -92
  205. package/src/components/Thread/Tabbed.tsx +0 -72
  206. /package/dist/lib/browser/{AutomationPanel-WFJZAW4F.mjs.map → AutomationPanel-VW2XIUPU.mjs.map} +0 -0
  207. /package/dist/lib/browser/{ChatContainer-OFCOZ5T2.mjs.map → ChatContainer-5TAVTN3T.mjs.map} +0 -0
  208. /package/dist/lib/browser/{ai-client-AARXEMMJ.mjs.map → ai-client-5CNY6JBF.mjs.map} +0 -0
  209. /package/dist/lib/browser/{chunk-HZ4TA7HY.mjs.map → chunk-2H2EUYXL.mjs.map} +0 -0
  210. /package/dist/lib/browser/{intent-resolver-754MPV7H.mjs.map → intent-resolver-BWAXKT27.mjs.map} +0 -0
  211. /package/dist/lib/node/{ai-client-SA35GN5Q.cjs.map → ai-client-FKLPDELV.cjs.map} +0 -0
  212. /package/dist/lib/node/{chunk-ZS5RZ7RM.cjs.map → chunk-U5Z7LFWB.cjs.map} +0 -0
  213. /package/dist/lib/node/{intent-resolver-CNVBSG4E.cjs.map → intent-resolver-C6OKFVEW.cjs.map} +0 -0
  214. /package/dist/lib/node-esm/{AutomationPanel-ZV7VEEPP.mjs.map → AutomationPanel-V3IWQAMO.mjs.map} +0 -0
  215. /package/dist/lib/node-esm/{ChatContainer-PPVMC2FC.mjs.map → ChatContainer-CNTY3C2D.mjs.map} +0 -0
  216. /package/dist/lib/node-esm/{ai-client-2ZA4TYFZ.mjs.map → ai-client-XGNA6SJ5.mjs.map} +0 -0
  217. /package/dist/lib/node-esm/{chunk-ISYLEDVU.mjs.map → chunk-IJRTDSKN.mjs.map} +0 -0
  218. /package/dist/lib/node-esm/{intent-resolver-RQBXW442.mjs.map → intent-resolver-DCP4ZDBA.mjs.map} +0 -0
  219. /package/dist/types/src/components/{Thread → Box}/StatusLine.d.ts +0 -0
  220. /package/dist/types/src/components/{Thread → Box}/StatusLine.stories.d.ts +0 -0
  221. /package/dist/types/src/components/{Thread → Box}/Tabbed.stories.d.ts +0 -0
  222. /package/dist/types/src/components/{Thread → Box}/ToggleContainer.stories.d.ts +0 -0
  223. /package/src/components/{Thread → Box}/StatusLine.stories.tsx +0 -0
  224. /package/src/testing/{testing.ts → test-functions.ts} +0 -0
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/AutomationPanel/AutomationPanel.tsx", "../../../src/components/TriggerEditor/TriggerEditor.tsx", "../../../src/components/AutomationPanel/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useState } from 'react';\n\nimport { S } from '@dxos/echo-schema';\nimport {\n FunctionType,\n FunctionTrigger,\n FunctionTriggerSchema,\n TriggerKind,\n type FunctionTriggerType,\n ScriptType,\n} from '@dxos/functions';\nimport { type Client, useClient } from '@dxos/react-client';\nimport { create, Filter, useQuery, type Space, type ReactiveObject, getSpace } from '@dxos/react-client/echo';\nimport { IconButton, Input, useTranslation, Button } from '@dxos/react-ui';\nimport { List } from '@dxos/react-ui-list';\nimport { ghostHover, mx } from '@dxos/react-ui-theme';\n\nimport { AUTOMATION_PLUGIN } from '../../meta';\nimport { TriggerEditor, type TriggerEditorProps } from '../TriggerEditor';\n\nconst grid = 'grid grid-cols-[40px_1fr_32px] min-bs-[2.5rem]';\n\nexport type AutomationPanelProps = {\n space: Space;\n object?: ReactiveObject<any>;\n};\n\n// TODO(burdon): Factor out common layout with ViewEditor.\nexport const AutomationPanel = ({ space, object }: AutomationPanelProps) => {\n const { t } = useTranslation(AUTOMATION_PLUGIN);\n const client = useClient();\n const triggers = useQuery(space, Filter.schema(FunctionTrigger));\n const functions = useQuery(space, Filter.schema(FunctionType));\n const scripts = useQuery(space, Filter.schema(ScriptType));\n\n const [trigger, setTrigger] = useState<FunctionTriggerType>();\n const [selected, setSelected] = useState<FunctionTrigger>();\n\n const handleSelect = (trigger: FunctionTrigger) => {\n const { id: _, ...values } = trigger;\n setTrigger(values);\n setSelected(trigger);\n };\n\n const handleAdd = () => {\n setTrigger(create(FunctionTriggerSchema, { meta: {} }));\n setSelected(undefined);\n };\n\n const handleDelete = (trigger: FunctionTrigger) => {\n space.db.remove(trigger);\n setTrigger(undefined);\n setSelected(undefined);\n };\n\n const handleSave: TriggerEditorProps['onSave'] = (trigger) => {\n if (selected) {\n Object.assign(selected, trigger);\n } else {\n space.db.add(create(FunctionTrigger, trigger));\n }\n\n setTrigger(undefined);\n setSelected(undefined);\n };\n\n const handleCancel: TriggerEditorProps['onCancel'] = () => {\n setTrigger(undefined);\n };\n\n return (\n <div className='flex flex-col w-full divide-y divide-separator overflow-y-auto'>\n <List.Root<FunctionTrigger> items={triggers} isItem={S.is(FunctionTrigger)} getId={(field) => field.id}>\n {({ items: triggers }) => (\n <div role='list' className='flex flex-col w-full'>\n {triggers?.map((trigger) => {\n const copyAction = getCopyAction(client, trigger);\n return (\n <List.Item<FunctionTrigger>\n key={trigger.id}\n item={trigger}\n classNames={mx(grid, ghostHover, 'items-center', 'px-2')}\n >\n <Input.Root>\n <Input.Switch\n checked={trigger.enabled}\n onCheckedChange={(checked) => (trigger.enabled = checked)}\n />\n </Input.Root>\n\n <div className={'flex'}>\n <List.ItemTitle\n classNames='px-1 cursor-pointer w-0 shrink truncate'\n onClick={() => handleSelect(trigger)}\n >\n {getFunctionName(scripts, functions, trigger) ?? '∅'}\n </List.ItemTitle>\n\n {/* TODO: a better way to expose copy action */}\n {copyAction && (\n <Button onClick={() => navigator.clipboard.writeText(copyAction.contentProvider())}>\n {t(copyAction.translationKey)}\n </Button>\n )}\n </div>\n\n <List.ItemDeleteButton onClick={() => handleDelete(trigger)} />\n </List.Item>\n );\n })}\n </div>\n )}\n </List.Root>\n\n {trigger && <TriggerEditor space={space} trigger={trigger} onSave={handleSave} onCancel={handleCancel} />}\n\n {!trigger && (\n <div className='flex p-2 justify-center'>\n <IconButton icon='ph--plus--regular' label={t('new trigger')} onClick={handleAdd} />\n </div>\n )}\n </div>\n );\n};\n\nconst getCopyAction = (client: Client, trigger: FunctionTrigger | undefined) => {\n if (trigger?.spec?.type === TriggerKind.Email) {\n return { translationKey: 'trigger copy email', contentProvider: () => `${getSpace(trigger)!.id}@dxos.network` };\n }\n\n if (trigger?.spec?.type === TriggerKind.Webhook) {\n return { translationKey: 'trigger copy url', contentProvider: () => getWebhookUrl(client, trigger) };\n }\n\n return undefined;\n};\n\nconst getWebhookUrl = (client: Client, trigger: FunctionTrigger) => {\n const spaceId = getSpace(trigger)!.id;\n const edgeUrl = new URL(client.config.values.runtime!.services!.edge!.url!);\n const isSecure = edgeUrl.protocol.startsWith('https') || edgeUrl.protocol.startsWith('wss');\n edgeUrl.protocol = isSecure ? 'https' : 'http';\n return new URL(`/webhook/${spaceId}:${trigger.id}`, edgeUrl).toString();\n};\n\nconst getFunctionName = (scripts: ScriptType[], functions: FunctionType[], trigger: FunctionTriggerType) => {\n const shortId = trigger.function && `${trigger.function?.slice(0, 16)}…`;\n const functionObject = functions.find((fn) => fn.name === trigger.function);\n if (!functionObject) {\n return shortId;\n }\n return scripts.find((s) => functionObject.source?.target?.id === s.id)?.name ?? shortId;\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React, { useEffect, useState } from 'react';\n\nimport { ComputeGraph } from '@dxos/conductor';\nimport {\n FunctionType,\n FunctionTriggerSchema,\n type FunctionTriggerType,\n type FunctionTrigger,\n ScriptType,\n TriggerKind,\n} from '@dxos/functions';\nimport { Filter, useQuery, type Space } from '@dxos/react-client/echo';\nimport { IconButton, Input, useTranslation } from '@dxos/react-ui';\nimport { Form, SelectInput, TextInput } from '@dxos/react-ui-form';\n\nimport { AUTOMATION_PLUGIN } from '../../meta';\n\nexport type TriggerEditorProps = {\n space: Space;\n trigger: FunctionTriggerType;\n onSave?: (trigger: Omit<FunctionTrigger, 'id'>) => void;\n onCancel?: () => void;\n};\n\nexport const TriggerEditor = ({ space, trigger, onSave, onCancel }: TriggerEditorProps) => {\n const { t } = useTranslation(AUTOMATION_PLUGIN);\n\n const functions = useQuery(space, Filter.schema(FunctionType));\n const workflows = useQuery(space, Filter.schema(ComputeGraph));\n const scripts = useQuery(space, Filter.schema(ScriptType));\n\n const handleSave = (values: FunctionTriggerType) => {\n onSave?.(values);\n };\n\n return (\n <Form<FunctionTriggerType>\n schema={FunctionTriggerSchema}\n values={trigger}\n onSave={handleSave}\n onCancel={onCancel}\n Custom={{\n ['function' satisfies keyof FunctionTriggerType]: (props) => (\n <SelectInput\n {...props}\n options={getWorkflowOptions(workflows).concat(getFunctionOptions(scripts, functions))}\n />\n ),\n ['spec.type' as const]: (props) => (\n <SelectInput\n {...props}\n options={Object.values(TriggerKind).map((kind) => ({\n value: kind,\n label: t(`trigger type ${kind}`),\n }))}\n />\n ),\n ['meta' as const]: (props) => {\n const meta = props.getValue()!;\n useEffect(() => props.onValueChange('object', { ...meta }), []);\n const [newMetaFieldName, setNewMetaFieldName] = useState('');\n\n return (\n <>\n <div>{props.label}</div>\n {[...Object.keys(meta)].map((key) => {\n const compositeKey: any = `meta.${key}`;\n return (\n <div key={compositeKey} role='none' className='flex items-center mt-2 gap-1'>\n <div role='none' className='flex-1'>\n <TextInput\n {...props}\n getValue={() => (props.getValue() as any)[key]}\n type={'string'}\n label={key}\n />\n </div>\n <IconButton\n icon='ph--trash--regular'\n iconOnly\n classNames={'mt-6'}\n label={t('trigger meta remove')}\n onClick={() => {\n const newValues: any = { ...props.getValue() };\n delete newValues[key];\n props.onValueChange('object', newValues);\n }}\n />\n </div>\n );\n })}\n <div role='none' className='flex items-center mt-2 gap-1 plb-1'>\n <div role='none' className='flex-1'>\n <Input.Root>\n <Input.TextInput\n placeholder={t('trigger meta prop name placeholder')}\n value={newMetaFieldName}\n onChange={(event) => setNewMetaFieldName(event.target.value)}\n />\n </Input.Root>\n </div>\n <IconButton\n icon='ph--plus--regular'\n iconOnly\n label={t('trigger meta add')}\n onClick={() => {\n if (newMetaFieldName.length) {\n const meta = props.getValue() ?? {};\n const metaWithNewProp = { ...meta, [newMetaFieldName]: '' };\n setNewMetaFieldName('');\n props.onValueChange('object', metaWithNewProp);\n }\n }}\n />\n </div>\n </>\n );\n },\n }}\n />\n );\n};\n\nconst getWorkflowOptions = (graphs: ComputeGraph[]) => {\n return graphs.map((graph) => ({ label: `compute-${graph.id}`, value: `dxn:echo:@:${graph.id}` }));\n};\n\nconst getFunctionOptions = (scripts: ScriptType[], functions: FunctionType[]) => {\n const getLabel = (fn: FunctionType) => scripts.find((s) => fn.source?.target?.id === s.id)?.name ?? fn.name;\n return functions.map((fn) => ({ label: getLabel(fn), value: `dxn:worker:${fn.name}` }));\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { AutomationPanel } from './AutomationPanel';\n\nexport default AutomationPanel;\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useState", "S", "FunctionType", "FunctionTrigger", "FunctionTriggerSchema", "TriggerKind", "ScriptType", "useClient", "create", "Filter", "useQuery", "getSpace", "IconButton", "Input", "useTranslation", "Button", "List", "ghostHover", "mx", "React", "useEffect", "useState", "ComputeGraph", "FunctionType", "FunctionTriggerSchema", "ScriptType", "TriggerKind", "Filter", "useQuery", "IconButton", "Input", "useTranslation", "Form", "SelectInput", "TextInput", "TriggerEditor", "space", "trigger", "onSave", "onCancel", "t", "useTranslation", "AUTOMATION_PLUGIN", "functions", "useQuery", "Filter", "schema", "FunctionType", "workflows", "ComputeGraph", "scripts", "ScriptType", "handleSave", "values", "Form", "FunctionTriggerSchema", "Custom", "props", "SelectInput", "options", "getWorkflowOptions", "concat", "getFunctionOptions", "Object", "TriggerKind", "map", "kind", "value", "label", "meta", "getValue", "useEffect", "onValueChange", "newMetaFieldName", "setNewMetaFieldName", "useState", "div", "keys", "key", "compositeKey", "role", "className", "TextInput", "type", "IconButton", "icon", "iconOnly", "classNames", "onClick", "newValues", "Input", "Root", "placeholder", "onChange", "event", "target", "length", "metaWithNewProp", "graphs", "graph", "id", "getLabel", "fn", "find", "s", "source", "name", "grid", "AutomationPanel", "space", "object", "t", "useTranslation", "AUTOMATION_PLUGIN", "client", "useClient", "triggers", "useQuery", "Filter", "schema", "FunctionTrigger", "functions", "FunctionType", "scripts", "ScriptType", "trigger", "setTrigger", "useState", "selected", "setSelected", "handleSelect", "id", "_", "values", "handleAdd", "create", "FunctionTriggerSchema", "meta", "undefined", "handleDelete", "db", "remove", "handleSave", "Object", "assign", "add", "handleCancel", "React", "div", "className", "List", "Root", "items", "isItem", "S", "is", "getId", "field", "role", "map", "copyAction", "getCopyAction", "Item", "key", "item", "classNames", "mx", "ghostHover", "Input", "Switch", "checked", "enabled", "onCheckedChange", "ItemTitle", "onClick", "getFunctionName", "Button", "navigator", "clipboard", "writeText", "contentProvider", "translationKey", "ItemDeleteButton", "TriggerEditor", "onSave", "onCancel", "IconButton", "icon", "label", "spec", "type", "TriggerKind", "Email", "getSpace", "Webhook", "getWebhookUrl", "spaceId", "edgeUrl", "URL", "config", "runtime", "services", "edge", "url", "isSecure", "protocol", "startsWith", "toString", "shortId", "function", "slice", "functionObject", "find", "fn", "name", "s", "source", "target", "AutomationPanel"]
7
+ }
@@ -1,13 +1,23 @@
1
1
  import {
2
2
  AUTOMATION_PLUGIN
3
- } from "./chunk-HKX3D3ZP.mjs";
3
+ } from "./chunk-R4JH4TLE.mjs";
4
4
 
5
5
  // packages/plugins/experimental/plugin-automation/src/types/registry.ts
6
- import { createStatic } from "@dxos/echo-schema";
6
+ var categoryIcons = {
7
+ finance: "ph--bank--regular",
8
+ health: "ph--heart--regular",
9
+ geolocation: "ph--globe-simple--regular",
10
+ education: "ph--books--regular",
11
+ entertainment: "ph--music-notes--regular",
12
+ shopping: "ph--shopping-cart--regular",
13
+ travel: "ph--airplane-takeoff--regular",
14
+ utilities: "ph--lightning--regular",
15
+ weather: "ph--cloud-rain--regular"
16
+ };
7
17
 
8
18
  // packages/plugins/experimental/plugin-automation/src/types/schema.ts
9
19
  import { ComputeGraph } from "@dxos/conductor";
10
- import { Expando, Ref, S, TypedObject, EchoObject } from "@dxos/echo-schema";
20
+ import { Expando, Ref, S, TypedObject } from "@dxos/echo-schema";
11
21
  import { FunctionType } from "@dxos/functions";
12
22
  var ChainInputType;
13
23
  (function(ChainInputType2) {
@@ -93,86 +103,21 @@ var ServiceInterfaceApi = S.Struct({
93
103
  authorization: S.optional(ApiAuthorization)
94
104
  });
95
105
  var ServiceInterface = S.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);
96
- var ServiceType = S.Struct({
106
+ var ServiceType = class extends TypedObject({
107
+ typename: "dxos.org/type/ServiceType",
108
+ version: "0.1.0"
109
+ })({
97
110
  serviceId: S.String,
98
111
  name: S.optional(S.String),
99
112
  description: S.optional(S.String),
113
+ category: S.optional(S.String),
100
114
  enabled: S.optional(S.Boolean),
101
115
  /**
102
116
  * Entries exposed: functions, workflows, and APIs.
103
117
  */
104
118
  interfaces: S.optional(S.Array(ServiceInterface))
105
- }).pipe(EchoObject("dxos.org/type/Service", "0.1.0"));
106
-
107
- // packages/plugins/experimental/plugin-automation/src/types/registry.ts
108
- var MockServiceRegistry = class {
109
- async queryServices(query) {
110
- return TEST_SERVICES;
111
- }
112
- };
113
- var AMADEUS_AUTH = {
114
- type: "oauth",
115
- clientId: "BOEnpLd1sMyKjAPGKYeAPFFy60u53QEG",
116
- clientSecret: "n4qldSN7usvD57gm",
117
- tokenUrl: "https://test.api.amadeus.com/v1/security/oauth2/token",
118
- grantType: "client_credentials"
119
- };
120
- var VISUAL_CROSSING_CREDENTIALS = {
121
- type: "api-key",
122
- key: "FDPRVS953KB4GQQLD25GRT975",
123
- placement: {
124
- type: "query",
125
- name: "key"
126
- }
119
+ }) {
127
120
  };
128
- var TEST_SERVICES = [
129
- /**
130
- * dxn:service:example.com/service/FlightSearch
131
- */
132
- createStatic(ServiceType, {
133
- serviceId: "example.com/service/FlightSearch",
134
- name: "Amadeus Flight Search",
135
- description: "Search for local and international flights.",
136
- interfaces: [
137
- {
138
- kind: "api",
139
- schemaUrl: "https://api.apis.guru/v2/specs/amadeus.com/amadeus-flight-availabilities-search/1.0.2/swagger.json",
140
- authorization: AMADEUS_AUTH
141
- }
142
- ]
143
- }),
144
- /**
145
- * dxn:service:example.com/service/HotelSearch
146
- */
147
- // TODO(burdon): Not working.
148
- createStatic(ServiceType, {
149
- serviceId: "example.com/service/HotelSearch",
150
- name: "Amadeus Hotel Search",
151
- description: "Search for local and international hotels.",
152
- interfaces: [
153
- {
154
- kind: "api",
155
- schemaUrl: "https://api.apis.guru/v2/specs/amadeus.com/amadeus-hotel-search/3.0.8/swagger.json",
156
- authorization: AMADEUS_AUTH
157
- }
158
- ]
159
- }),
160
- /**
161
- * dxn:service:example.com/service/Weather
162
- */
163
- createStatic(ServiceType, {
164
- serviceId: "example.com/service/Weather",
165
- name: "Visual Crossing Weather",
166
- description: "Search for global weather forecasts.",
167
- interfaces: [
168
- {
169
- kind: "api",
170
- schemaUrl: "https://api.apis.guru/v2/specs/visualcrossing.com/weather/4.6/openapi.json",
171
- authorization: VISUAL_CROSSING_CREDENTIALS
172
- }
173
- ]
174
- })
175
- ];
176
121
 
177
122
  // packages/plugins/experimental/plugin-automation/src/types/types.ts
178
123
  import { S as S2 } from "@dxos/echo-schema";
@@ -192,6 +137,7 @@ var AutomationAction;
192
137
  })(AutomationAction || (AutomationAction = {}));
193
138
 
194
139
  export {
140
+ categoryIcons,
195
141
  ChainInputType,
196
142
  ChainInputSchema,
197
143
  ChainPromptType,
@@ -199,7 +145,6 @@ export {
199
145
  AIChatType,
200
146
  ApiAuthorization,
201
147
  ServiceType,
202
- MockServiceRegistry,
203
148
  AutomationAction
204
149
  };
205
- //# sourceMappingURL=chunk-7XADMUOW.mjs.map
150
+ //# sourceMappingURL=chunk-Q4IMHYGH.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/registry.ts", "../../../src/types/schema.ts", "../../../src/types/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ServiceType } from './schema';\n\nexport type ServiceQuery = {\n name?: string;\n category?: string;\n};\n\nexport interface BaseServiceRegistry {\n queryServices(query?: ServiceQuery): Promise<ServiceType[]>;\n}\n\nexport const categoryIcons: Record<string, string> = {\n finance: 'ph--bank--regular',\n health: 'ph--heart--regular',\n geolocation: 'ph--globe-simple--regular',\n education: 'ph--books--regular',\n entertainment: 'ph--music-notes--regular',\n shopping: 'ph--shopping-cart--regular',\n travel: 'ph--airplane-takeoff--regular',\n utilities: 'ph--lightning--regular',\n weather: 'ph--cloud-rain--regular',\n} as const;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { ComputeGraph } from '@dxos/conductor';\nimport { Expando, Ref, S, TypedObject, type Ref$ } from '@dxos/echo-schema';\nimport { FunctionType } from '@dxos/functions';\n\n// TODO(burdon): Change to S.Literal (and discriminated union).\nexport enum ChainInputType {\n VALUE = 0,\n PASS_THROUGH = 1,\n RETRIEVER = 2,\n FUNCTION = 3,\n QUERY = 4,\n RESOLVER = 5,\n CONTEXT = 6,\n SCHEMA = 7,\n}\n\nexport const ChainInputSchema = S.mutable(\n S.Struct({\n name: S.String,\n type: S.optional(S.Enums(ChainInputType)),\n value: S.optional(S.String),\n }),\n);\n\nexport type ChainInput = S.Schema.Type<typeof ChainInputSchema>;\n\nexport class ChainPromptType extends TypedObject({ typename: 'dxos.org/type/ChainPrompt', version: '0.1.0' })({\n command: S.optional(S.String),\n template: S.String,\n inputs: S.optional(S.mutable(S.Array(ChainInputSchema))),\n}) {}\n\nexport class ChainType extends TypedObject({ typename: 'dxos.org/type/Chain', version: '0.1.0' })({\n name: S.optional(S.String),\n prompts: S.optional(S.mutable(S.Array(Ref(ChainPromptType)))),\n}) {}\n\nexport class AIChatType extends TypedObject({ typename: 'dxos.org/type/AIChat', version: '0.1.0' })({\n name: S.optional(S.String),\n // TODO(wittjosiah): Should be a ref to a Queue.\n queue: Ref(Expando),\n}) {}\n\nconst ApiAuthorizationKey = S.Struct({\n type: S.Literal('api-key'),\n key: S.String,\n placement: S.Union(\n S.Struct({\n type: S.Literal('authorization-header'),\n }),\n S.Struct({\n type: S.Literal('query'),\n name: S.String,\n }),\n ),\n});\n\nconst ApiAuthorizationOauth = S.Struct({\n type: S.Literal('oauth'),\n clientId: S.String,\n clientSecret: S.String,\n tokenUrl: S.String,\n grantType: S.String,\n});\n\nexport const ApiAuthorization = S.Union(ApiAuthorizationKey, ApiAuthorizationOauth);\nexport type ApiAuthorization = S.Schema.Type<typeof ApiAuthorization>;\n\nconst ServiceInterfaceFunction = S.Struct({\n kind: S.Literal('function'),\n fn: Ref(FunctionType) as Ref$<FunctionType>,\n});\n\nconst ServiceInterfaceWorkflow = S.Struct({\n kind: S.Literal('workflow'),\n workflow: Ref(ComputeGraph) as Ref$<ComputeGraph>,\n});\n\nconst ServiceInterfaceApi = S.Struct({\n kind: S.Literal('api'),\n\n /**\n * URL to fetch the openapi schema.\n */\n schemaUrl: S.optional(S.String),\n\n /**\n * Inlined openapi schema.\n */\n schema: S.optional(S.Any),\n\n /**\n * Authorization configuration if required.\n */\n authorization: S.optional(ApiAuthorization),\n});\n\nconst ServiceInterface = S.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);\nexport type ServiceInterface = S.Schema.Type<typeof ServiceInterface>;\n\n// export const ServiceType = S.Struct({\n// serviceId: S.String,\n// name: S.optional(S.String),\n// description: S.optional(S.String),\n// category: S.optional(S.String),\n// enabled: S.optional(S.Boolean),\n\n// /**\n// * Entries exposed: functions, workflows, and APIs.\n// */\n// interfaces: S.optional(S.Array(ServiceInterface)),\n// }).pipe(EchoObject('dxos.org/type/Service', '0.1.0'));\n// dxn:type:dxos.org/type/Service\n\n// export type ServiceType = S.Schema.Type<typeof ServiceType>;\n\nexport class ServiceType extends TypedObject({ typename: 'dxos.org/type/ServiceType', version: '0.1.0' })({\n serviceId: S.String,\n name: S.optional(S.String),\n description: S.optional(S.String),\n category: S.optional(S.String),\n enabled: S.optional(S.Boolean),\n\n /**\n * Entries exposed: functions, workflows, and APIs.\n */\n interfaces: S.optional(S.Array(ServiceInterface)),\n}) {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { S } from '@dxos/echo-schema';\n\nimport { AIChatType } from './schema';\nimport { AUTOMATION_PLUGIN } from '../meta';\n\nexport namespace AutomationAction {\n const AUTOMATION_ACTION = `${AUTOMATION_PLUGIN}/action`;\n\n export class Create extends S.TaggedClass<Create>()(`${AUTOMATION_ACTION}/create`, {\n input: S.Struct({\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: AIChatType,\n }),\n }) {}\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["categoryIcons", "finance", "health", "geolocation", "education", "entertainment", "shopping", "travel", "utilities", "weather", "ComputeGraph", "Expando", "Ref", "S", "TypedObject", "FunctionType", "ChainInputType", "ChainInputSchema", "S", "mutable", "Struct", "name", "String", "type", "optional", "Enums", "value", "ChainPromptType", "TypedObject", "typename", "version", "command", "template", "inputs", "Array", "ChainType", "prompts", "Ref", "AIChatType", "queue", "Expando", "ApiAuthorizationKey", "Literal", "key", "placement", "Union", "ApiAuthorizationOauth", "clientId", "clientSecret", "tokenUrl", "grantType", "ApiAuthorization", "ServiceInterfaceFunction", "kind", "fn", "FunctionType", "ServiceInterfaceWorkflow", "workflow", "ComputeGraph", "ServiceInterfaceApi", "schemaUrl", "schema", "Any", "authorization", "ServiceInterface", "ServiceType", "serviceId", "description", "category", "enabled", "Boolean", "interfaces", "S", "AutomationAction", "AUTOMATION_ACTION", "AUTOMATION_PLUGIN", "Create", "S", "TaggedClass", "input", "Struct", "name", "optional", "String", "output", "object", "AIChatType"]
7
+ }
@@ -1,9 +1,10 @@
1
1
  // packages/plugins/experimental/plugin-automation/src/meta.ts
2
2
  var AUTOMATION_PLUGIN = "dxos.org/plugin/automation";
3
+ var AMBIENT_CHAT_DIALOG = `${AUTOMATION_PLUGIN}/ambient-chat/dialog`;
3
4
  var meta = {
4
5
  id: AUTOMATION_PLUGIN,
5
6
  name: "Automation",
6
- description: "Automation workflows.",
7
+ description: "The Automation tab allows you to trigger pre-defined workflows related to the element you are interacting with inside of Composer.",
7
8
  icon: "ph--magic-wand--regular",
8
9
  source: "https://github.com/dxos/dxos/tree/main/packages/plugins/experimental/plugin-automation",
9
10
  tags: [
@@ -13,6 +14,7 @@ var meta = {
13
14
 
14
15
  export {
15
16
  AUTOMATION_PLUGIN,
17
+ AMBIENT_CHAT_DIALOG,
16
18
  meta
17
19
  };
18
- //# sourceMappingURL=chunk-HKX3D3ZP.mjs.map
20
+ //# sourceMappingURL=chunk-R4JH4TLE.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/meta.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const AUTOMATION_PLUGIN = 'dxos.org/plugin/automation';\n\nexport const AMBIENT_CHAT_DIALOG = `${AUTOMATION_PLUGIN}/ambient-chat/dialog`;\n\nexport const meta = {\n id: AUTOMATION_PLUGIN,\n name: 'Automation',\n description:\n 'The Automation tab allows you to trigger pre-defined workflows related to the element you are interacting with inside of Composer.',\n icon: 'ph--magic-wand--regular',\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/experimental/plugin-automation',\n tags: ['experimental'],\n} satisfies PluginMeta;\n"],
5
+ "mappings": ";AAMO,IAAMA,oBAAoB;AAE1B,IAAMC,sBAAsB,GAAGD,iBAAAA;AAE/B,IAAME,OAAO;EAClBC,IAAIH;EACJI,MAAM;EACNC,aACE;EACFC,MAAM;EACNC,QAAQ;EACRC,MAAM;IAAC;;AACT;",
6
+ "names": ["AUTOMATION_PLUGIN", "AMBIENT_CHAT_DIALOG", "meta", "id", "name", "description", "icon", "source", "tags"]
7
+ }
@@ -1,12 +1,13 @@
1
1
  import {
2
+ AmbientChatDialog,
2
3
  AutomationPanel,
3
4
  ChatContainer,
4
5
  PromptEditor,
5
6
  ServiceRegistry
6
- } from "./chunk-IYSMXX6Q.mjs";
7
+ } from "./chunk-MJK7GL5P.mjs";
7
8
  import {
8
9
  TriggerEditor
9
- } from "./chunk-RAVNWHNE.mjs";
10
+ } from "./chunk-NQFZ6XRX.mjs";
10
11
  import {
11
12
  AiClient,
12
13
  AppGraphBuilder,
@@ -14,8 +15,8 @@ import {
14
15
  MarkdownViewer,
15
16
  ReactSurface,
16
17
  Thread
17
- } from "./chunk-5SLV6AUA.mjs";
18
- import "./chunk-HZ4TA7HY.mjs";
18
+ } from "./chunk-DVE33EZL.mjs";
19
+ import "./chunk-2H2EUYXL.mjs";
19
20
  import {
20
21
  AIChatType,
21
22
  ApiAuthorization,
@@ -24,13 +25,14 @@ import {
24
25
  ChainInputType,
25
26
  ChainPromptType,
26
27
  ChainType,
27
- MockServiceRegistry,
28
- ServiceType
29
- } from "./chunk-7XADMUOW.mjs";
28
+ ServiceType,
29
+ categoryIcons
30
+ } from "./chunk-Q4IMHYGH.mjs";
30
31
  import {
32
+ AMBIENT_CHAT_DIALOG,
31
33
  AUTOMATION_PLUGIN,
32
34
  meta
33
- } from "./chunk-HKX3D3ZP.mjs";
35
+ } from "./chunk-R4JH4TLE.mjs";
34
36
 
35
37
  // packages/plugins/experimental/plugin-automation/src/AutomationPlugin.tsx
36
38
  import { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from "@dxos/app-framework";
@@ -71,6 +73,7 @@ var translations_default = [
71
73
  "trigger type websocket": "Websocket",
72
74
  "trigger type subscription": "Subscription",
73
75
  "trigger type email": "Email",
76
+ "trigger type queue": "Queue",
74
77
  "trigger filter": "Filter",
75
78
  "trigger cron": "Cron",
76
79
  "trigger method": "Method",
@@ -87,11 +90,6 @@ var translations_default = [
87
90
 
88
91
  // packages/plugins/experimental/plugin-automation/src/AutomationPlugin.tsx
89
92
  var AutomationPlugin = () => definePlugin(meta, [
90
- defineModule({
91
- id: `${meta.id}/module/ai-client`,
92
- activatesOn: ClientEvents.ClientReady,
93
- activate: AiClient
94
- }),
95
93
  defineModule({
96
94
  id: `${meta.id}/module/translations`,
97
95
  activatesOn: Events.SetupTranslations,
@@ -137,7 +135,8 @@ var AutomationPlugin = () => definePlugin(meta, [
137
135
  contributes(ClientCapabilities.SystemSchema, [
138
136
  ChainType,
139
137
  ChainPromptType,
140
- FunctionTrigger
138
+ FunctionTrigger,
139
+ ServiceType
141
140
  ]),
142
141
  contributes(ClientCapabilities.Schema, [
143
142
  AIChatType
@@ -184,6 +183,11 @@ var AutomationPlugin = () => definePlugin(meta, [
184
183
  id: `${meta.id}/module/intent-resolver`,
185
184
  activatesOn: Events.SetupIntents,
186
185
  activate: IntentResolver
186
+ }),
187
+ defineModule({
188
+ id: `${meta.id}/module/ai-client`,
189
+ activatesOn: ClientEvents.ClientReady,
190
+ activate: AiClient
187
191
  })
188
192
  ]);
189
193
 
@@ -406,7 +410,9 @@ var chainPresets = [
406
410
  ];
407
411
  export {
408
412
  AIChatType,
413
+ AMBIENT_CHAT_DIALOG,
409
414
  AUTOMATION_PLUGIN,
415
+ AmbientChatDialog,
410
416
  ApiAuthorization,
411
417
  AutomationAction,
412
418
  AutomationPanel,
@@ -417,12 +423,12 @@ export {
417
423
  ChainType,
418
424
  ChatContainer,
419
425
  MarkdownViewer,
420
- MockServiceRegistry,
421
426
  PromptEditor,
422
427
  ServiceRegistry,
423
428
  ServiceType,
424
429
  Thread,
425
430
  TriggerEditor,
431
+ categoryIcons,
426
432
  chainPresets,
427
433
  meta,
428
434
  str
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/AutomationPlugin.tsx", "../../../src/translations.ts", "../../../src/presets.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { FunctionTrigger } from '@dxos/functions';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { DeckCapabilities } from '@dxos/plugin-deck';\nimport { RefArray } from '@dxos/react-client/echo';\n\nimport { AiClient, AppGraphBuilder, IntentResolver, ReactSurface } from './capabilities';\nimport { AUTOMATION_PLUGIN, meta } from './meta';\nimport translations from './translations';\nimport { AutomationAction, ChainPromptType, ChainType, AIChatType } from './types';\n\n// TODO(wittjosiah): Rename to AssistantPlugin?\nexport const AutomationPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/ai-client`,\n activatesOn: ClientEvents.ClientReady,\n activate: AiClient,\n }),\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: ChainType.typename,\n metadata: {\n placeholder: ['object placeholder', { ns: AUTOMATION_PLUGIN }],\n icon: 'ph--magic-wand--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (chain: ChainType) => await RefArray.loadAll(chain.prompts ?? []),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: AIChatType.typename,\n metadata: {\n createObject: (props: { name?: string }) => createIntent(AutomationAction.Create, props),\n placeholder: ['object placeholder', { ns: AUTOMATION_PLUGIN }],\n icon: 'ph--atom--regular',\n },\n }),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => [\n contributes(ClientCapabilities.SystemSchema, [ChainType, ChainPromptType, FunctionTrigger]),\n contributes(ClientCapabilities.Schema, [AIChatType]),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/complementary-panels`,\n activatesOn: Events.Startup,\n activate: () => [\n contributes(DeckCapabilities.ComplementaryPanel, {\n id: 'service-registry',\n label: ['service registry label', { ns: AUTOMATION_PLUGIN }],\n icon: 'ph--plugs--regular',\n }),\n contributes(DeckCapabilities.ComplementaryPanel, {\n id: 'automation',\n label: ['automation panel label', { ns: AUTOMATION_PLUGIN }],\n icon: 'ph--magic-wand--regular',\n }),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupSurfaces,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntents,\n activate: IntentResolver,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { AUTOMATION_PLUGIN } from './meta';\nimport { AIChatType } from './types';\n\nexport default [\n {\n 'en-US': {\n [AIChatType.typename]: {\n 'typename label': 'AI Chat',\n },\n [AUTOMATION_PLUGIN]: {\n 'plugin name': 'Automation',\n 'object placeholder': 'New prompt',\n 'create object label': 'Create prompt',\n 'create trigger label': 'Create trigger',\n 'create stack section label': 'Create prompt',\n 'command placeholder': 'Enter slash command...',\n 'template placeholder': 'Enter template...',\n 'value placeholder': 'Enter value...',\n 'select preset template placeholder': 'Select preset',\n 'open automation panel label': 'Show Automations',\n 'automation panel label': 'Automations',\n 'service registry label': 'Service Registry',\n\n 'chat input placeholder': 'Ask a question...',\n 'chat stop': 'Cancel request.',\n\n 'function select label': 'Function',\n 'function select placeholder': 'Select function',\n 'function enabled': 'Enabled',\n\n 'trigger select label': 'Trigger',\n 'trigger select placeholder': 'Trigger type',\n\n 'trigger type timer': 'Timer',\n 'trigger type webhook': 'Webhook',\n 'trigger type websocket': 'Websocket',\n 'trigger type subscription': 'Subscription',\n 'trigger type email': 'Email',\n\n 'trigger filter': 'Filter',\n 'trigger cron': 'Cron',\n 'trigger method': 'Method',\n 'trigger endpoint': 'Endpoint',\n\n 'trigger copy url': 'Copy URL',\n 'trigger copy email': 'Copy Email',\n\n 'trigger meta add': 'Add',\n 'trigger meta remove': 'Remove',\n 'trigger meta prop name placeholder': 'New meta property name',\n },\n },\n },\n];\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { create } from '@dxos/live-object';\n\nimport { ChainInputType, ChainPromptType } from './types';\n\nexport const str = (...text: (string | undefined | boolean)[]): string =>\n text\n .filter((value) => value !== undefined && value !== false)\n .flat()\n .join('\\n');\n\nexport type Preset = {\n id: string;\n title: string;\n createPrompt: () => ChainPromptType;\n};\n\nexport const chainPresets: Preset[] = [\n {\n id: 'dxos.org/prompt/translate',\n title: 'Translate',\n createPrompt: () =>\n create(ChainPromptType, {\n command: 'say',\n template: str(\n // prettier-ignore\n 'Translate the following into {language}:',\n '',\n '---',\n '',\n '{input}',\n ),\n inputs: [\n {\n type: ChainInputType.VALUE,\n name: 'language',\n value: 'japanese',\n },\n {\n type: ChainInputType.PASS_THROUGH,\n name: 'input',\n },\n // TODO(burdon): Message.\n // {\n // type: ChainInputType.CONTEXT,\n // name: 'input',\n // value: 'object.text',\n // },\n ],\n }),\n },\n {\n id: 'dxos.org/prompt/chess',\n title: 'Chess',\n createPrompt: () =>\n create(ChainPromptType, {\n command: 'hint',\n template: str(\n // prettier-ignore\n 'You are a machine that is an expert chess player.',\n '',\n 'The move history of the current game is: {history}',\n '',\n 'Suggest the next move and very briefly explain your strategy in a couple of sentences.',\n ),\n inputs: [\n {\n type: ChainInputType.CONTEXT,\n name: 'history',\n value: 'object.pgn',\n },\n ],\n }),\n },\n {\n id: 'dxos.org/prompt/mermaid',\n title: 'Mermaid',\n createPrompt: () =>\n create(ChainPromptType, {\n command: 'draw',\n template: str(\n // prettier-ignore\n 'Create a simplified mermaid graph representing the text below.',\n 'Do not explain anything.',\n '',\n '---',\n '',\n '{input}',\n ),\n inputs: [\n {\n type: ChainInputType.PASS_THROUGH,\n name: 'input',\n },\n ],\n }),\n },\n {\n id: 'dxos.org/prompt/list',\n title: 'List',\n createPrompt: () =>\n create(ChainPromptType, {\n command: 'list',\n template: str(\n // prettier-ignore\n 'You are a machine that only replies with valid, iterable RFC8259 compliant JSON in your responses.',\n 'Your entire response should be a single array of JSON objects.',\n '',\n 'Your entire response should be a map where the key is the type and the value is a single array of JSON objects conforming to the following types:',\n '',\n '{schema}',\n '',\n '---',\n '',\n '{question}',\n ),\n inputs: [\n {\n type: ChainInputType.SCHEMA,\n name: 'schema',\n value: 'example.com/type/project',\n },\n {\n type: ChainInputType.PASS_THROUGH,\n name: 'question',\n },\n ],\n }),\n },\n {\n id: 'dxos.org/prompt/base',\n title: 'RAG',\n createPrompt: () =>\n create(ChainPromptType, {\n command: 'rag',\n template: str(\n // prettier-ignore\n \"Very briefly answer the question based only on the following context and say if you don't know the answer.\",\n // 'answer the question using the following context as well as your training data:',\n '',\n '{context}',\n '',\n '---',\n '',\n 'question: {question}',\n ),\n inputs: [\n {\n type: ChainInputType.RETRIEVER,\n name: 'context',\n },\n {\n type: ChainInputType.CONTEXT,\n name: 'question',\n value: 'object.text',\n },\n ],\n }),\n },\n {\n id: 'dxos.org/prompt/lookup',\n title: 'Lookup',\n createPrompt: () =>\n create(ChainPromptType, {\n command: 'lookup',\n template: str(\n // prettier-ignore\n 'Lookup and very briefly summarize the following topic in one or two sentences:',\n '',\n '---',\n '',\n '{input}',\n ),\n inputs: [\n {\n type: ChainInputType.CONTEXT,\n name: 'input',\n value: 'text',\n },\n ],\n }),\n },\n {\n id: 'dxos.org/prompt/extract',\n title: 'Extract',\n createPrompt: () =>\n create(ChainPromptType, {\n command: 'extract',\n template: str(\n // prettier-ignore\n 'List all people and companies mentioned in the text below.',\n '',\n 'You are a machine that only replies with valid, iterable RFC8259 compliant JSON in your responses.',\n 'Your entire response should be a map where the key is the type and the value is a single array of JSON objects conforming to the following types:',\n '',\n '{contact}',\n '{company}',\n '',\n '---',\n '',\n '{input}',\n ),\n inputs: [\n {\n type: ChainInputType.SCHEMA,\n name: 'contact',\n value: 'example.com/type/contact',\n },\n {\n type: ChainInputType.SCHEMA,\n name: 'company',\n value: 'example.com/type/organization',\n },\n {\n type: ChainInputType.CONTEXT,\n name: 'input',\n value: 'text',\n },\n ],\n }),\n },\n {\n id: 'dxos.org/prompt/discord',\n title: 'Summarize',\n createPrompt: () =>\n create(ChainPromptType, {\n command: 'summarize',\n template: str(\n // prettier-ignore\n 'Summarize what the team is working on and format it as a markdown table without any explanation.',\n '',\n '---',\n '',\n '{context}',\n ),\n inputs: [\n {\n type: ChainInputType.RESOLVER,\n name: 'context',\n value: 'discord.messages.recent',\n },\n ],\n }),\n },\n];\n"],
5
- "mappings": "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",
6
- "names": ["Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "FunctionTrigger", "ClientCapabilities", "ClientEvents", "DeckCapabilities", "RefArray", "AIChatType", "typename", "AUTOMATION_PLUGIN", "AutomationPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "ClientEvents", "ClientReady", "activate", "AiClient", "Events", "SetupTranslations", "contributes", "Capabilities", "Translations", "translations", "SetupMetadata", "Metadata", "ChainType", "typename", "metadata", "placeholder", "ns", "AUTOMATION_PLUGIN", "icon", "loadReferences", "chain", "RefArray", "loadAll", "prompts", "AIChatType", "createObject", "props", "createIntent", "AutomationAction", "Create", "SetupSchema", "ClientCapabilities", "SystemSchema", "ChainPromptType", "FunctionTrigger", "Schema", "Startup", "DeckCapabilities", "ComplementaryPanel", "label", "SetupSurfaces", "ReactSurface", "SetupAppGraph", "AppGraphBuilder", "SetupIntents", "IntentResolver", "create", "str", "text", "filter", "value", "undefined", "flat", "join", "chainPresets", "id", "title", "createPrompt", "create", "ChainPromptType", "command", "template", "inputs", "type", "ChainInputType", "VALUE", "name", "PASS_THROUGH", "CONTEXT", "SCHEMA", "RETRIEVER", "RESOLVER"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, defineModule, definePlugin, Events } from '@dxos/app-framework';\nimport { FunctionTrigger } from '@dxos/functions';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { DeckCapabilities } from '@dxos/plugin-deck';\nimport { RefArray } from '@dxos/react-client/echo';\n\nimport { AiClient, AppGraphBuilder, IntentResolver, ReactSurface } from './capabilities';\nimport { AUTOMATION_PLUGIN, meta } from './meta';\nimport translations from './translations';\nimport { AutomationAction, ChainPromptType, ChainType, AIChatType, ServiceType } from './types';\n\n// TODO(wittjosiah): Rename to AssistantPlugin?\nexport const AutomationPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: ChainType.typename,\n metadata: {\n placeholder: ['object placeholder', { ns: AUTOMATION_PLUGIN }],\n icon: 'ph--magic-wand--regular',\n // TODO(wittjosiah): Move out of metadata.\n loadReferences: async (chain: ChainType) => await RefArray.loadAll(chain.prompts ?? []),\n },\n }),\n contributes(Capabilities.Metadata, {\n id: AIChatType.typename,\n metadata: {\n createObject: (props: { name?: string }) => createIntent(AutomationAction.Create, props),\n placeholder: ['object placeholder', { ns: AUTOMATION_PLUGIN }],\n icon: 'ph--atom--regular',\n },\n }),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => [\n contributes(ClientCapabilities.SystemSchema, [ChainType, ChainPromptType, FunctionTrigger, ServiceType]),\n contributes(ClientCapabilities.Schema, [AIChatType]),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/complementary-panels`,\n activatesOn: Events.Startup,\n activate: () => [\n contributes(DeckCapabilities.ComplementaryPanel, {\n id: 'service-registry',\n label: ['service registry label', { ns: AUTOMATION_PLUGIN }],\n icon: 'ph--plugs--regular',\n }),\n contributes(DeckCapabilities.ComplementaryPanel, {\n id: 'automation',\n label: ['automation panel label', { ns: AUTOMATION_PLUGIN }],\n icon: 'ph--magic-wand--regular',\n }),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupSurfaces,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntents,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/ai-client`,\n activatesOn: ClientEvents.ClientReady,\n activate: AiClient,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { AUTOMATION_PLUGIN } from './meta';\nimport { AIChatType } from './types';\n\nexport default [\n {\n 'en-US': {\n [AIChatType.typename]: {\n 'typename label': 'AI Chat',\n },\n [AUTOMATION_PLUGIN]: {\n 'plugin name': 'Automation',\n 'object placeholder': 'New prompt',\n 'create object label': 'Create prompt',\n 'create trigger label': 'Create trigger',\n 'create stack section label': 'Create prompt',\n 'command placeholder': 'Enter slash command...',\n 'template placeholder': 'Enter template...',\n 'value placeholder': 'Enter value...',\n 'select preset template placeholder': 'Select preset',\n 'open automation panel label': 'Show Automations',\n 'automation panel label': 'Automations',\n 'service registry label': 'Service Registry',\n\n 'chat input placeholder': 'Ask a question...',\n 'chat stop': 'Cancel request.',\n\n 'function select label': 'Function',\n 'function select placeholder': 'Select function',\n 'function enabled': 'Enabled',\n\n 'trigger select label': 'Trigger',\n 'trigger select placeholder': 'Trigger type',\n\n 'trigger type timer': 'Timer',\n 'trigger type webhook': 'Webhook',\n 'trigger type websocket': 'Websocket',\n 'trigger type subscription': 'Subscription',\n 'trigger type email': 'Email',\n 'trigger type queue': 'Queue',\n\n 'trigger filter': 'Filter',\n 'trigger cron': 'Cron',\n 'trigger method': 'Method',\n 'trigger endpoint': 'Endpoint',\n\n 'trigger copy url': 'Copy URL',\n 'trigger copy email': 'Copy Email',\n\n 'trigger meta add': 'Add',\n 'trigger meta remove': 'Remove',\n 'trigger meta prop name placeholder': 'New meta property name',\n },\n },\n },\n];\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { create } from '@dxos/live-object';\n\nimport { ChainInputType, ChainPromptType } from './types';\n\nexport const str = (...text: (string | undefined | boolean)[]): string =>\n text\n .filter((value) => value !== undefined && value !== false)\n .flat()\n .join('\\n');\n\nexport type Preset = {\n id: string;\n title: string;\n createPrompt: () => ChainPromptType;\n};\n\nexport const chainPresets: Preset[] = [\n {\n id: 'dxos.org/prompt/translate',\n title: 'Translate',\n createPrompt: () =>\n create(ChainPromptType, {\n command: 'say',\n template: str(\n // prettier-ignore\n 'Translate the following into {language}:',\n '',\n '---',\n '',\n '{input}',\n ),\n inputs: [\n {\n type: ChainInputType.VALUE,\n name: 'language',\n value: 'japanese',\n },\n {\n type: ChainInputType.PASS_THROUGH,\n name: 'input',\n },\n // TODO(burdon): Message.\n // {\n // type: ChainInputType.CONTEXT,\n // name: 'input',\n // value: 'object.text',\n // },\n ],\n }),\n },\n {\n id: 'dxos.org/prompt/chess',\n title: 'Chess',\n createPrompt: () =>\n create(ChainPromptType, {\n command: 'hint',\n template: str(\n // prettier-ignore\n 'You are a machine that is an expert chess player.',\n '',\n 'The move history of the current game is: {history}',\n '',\n 'Suggest the next move and very briefly explain your strategy in a couple of sentences.',\n ),\n inputs: [\n {\n type: ChainInputType.CONTEXT,\n name: 'history',\n value: 'object.pgn',\n },\n ],\n }),\n },\n {\n id: 'dxos.org/prompt/mermaid',\n title: 'Mermaid',\n createPrompt: () =>\n create(ChainPromptType, {\n command: 'draw',\n template: str(\n // prettier-ignore\n 'Create a simplified mermaid graph representing the text below.',\n 'Do not explain anything.',\n '',\n '---',\n '',\n '{input}',\n ),\n inputs: [\n {\n type: ChainInputType.PASS_THROUGH,\n name: 'input',\n },\n ],\n }),\n },\n {\n id: 'dxos.org/prompt/list',\n title: 'List',\n createPrompt: () =>\n create(ChainPromptType, {\n command: 'list',\n template: str(\n // prettier-ignore\n 'You are a machine that only replies with valid, iterable RFC8259 compliant JSON in your responses.',\n 'Your entire response should be a single array of JSON objects.',\n '',\n 'Your entire response should be a map where the key is the type and the value is a single array of JSON objects conforming to the following types:',\n '',\n '{schema}',\n '',\n '---',\n '',\n '{question}',\n ),\n inputs: [\n {\n type: ChainInputType.SCHEMA,\n name: 'schema',\n value: 'example.com/type/project',\n },\n {\n type: ChainInputType.PASS_THROUGH,\n name: 'question',\n },\n ],\n }),\n },\n {\n id: 'dxos.org/prompt/base',\n title: 'RAG',\n createPrompt: () =>\n create(ChainPromptType, {\n command: 'rag',\n template: str(\n // prettier-ignore\n \"Very briefly answer the question based only on the following context and say if you don't know the answer.\",\n // 'answer the question using the following context as well as your training data:',\n '',\n '{context}',\n '',\n '---',\n '',\n 'question: {question}',\n ),\n inputs: [\n {\n type: ChainInputType.RETRIEVER,\n name: 'context',\n },\n {\n type: ChainInputType.CONTEXT,\n name: 'question',\n value: 'object.text',\n },\n ],\n }),\n },\n {\n id: 'dxos.org/prompt/lookup',\n title: 'Lookup',\n createPrompt: () =>\n create(ChainPromptType, {\n command: 'lookup',\n template: str(\n // prettier-ignore\n 'Lookup and very briefly summarize the following topic in one or two sentences:',\n '',\n '---',\n '',\n '{input}',\n ),\n inputs: [\n {\n type: ChainInputType.CONTEXT,\n name: 'input',\n value: 'text',\n },\n ],\n }),\n },\n {\n id: 'dxos.org/prompt/extract',\n title: 'Extract',\n createPrompt: () =>\n create(ChainPromptType, {\n command: 'extract',\n template: str(\n // prettier-ignore\n 'List all people and companies mentioned in the text below.',\n '',\n 'You are a machine that only replies with valid, iterable RFC8259 compliant JSON in your responses.',\n 'Your entire response should be a map where the key is the type and the value is a single array of JSON objects conforming to the following types:',\n '',\n '{contact}',\n '{company}',\n '',\n '---',\n '',\n '{input}',\n ),\n inputs: [\n {\n type: ChainInputType.SCHEMA,\n name: 'contact',\n value: 'example.com/type/contact',\n },\n {\n type: ChainInputType.SCHEMA,\n name: 'company',\n value: 'example.com/type/organization',\n },\n {\n type: ChainInputType.CONTEXT,\n name: 'input',\n value: 'text',\n },\n ],\n }),\n },\n {\n id: 'dxos.org/prompt/discord',\n title: 'Summarize',\n createPrompt: () =>\n create(ChainPromptType, {\n command: 'summarize',\n template: str(\n // prettier-ignore\n 'Summarize what the team is working on and format it as a markdown table without any explanation.',\n '',\n '---',\n '',\n '{context}',\n ),\n inputs: [\n {\n type: ChainInputType.RESOLVER,\n name: 'context',\n value: 'discord.messages.recent',\n },\n ],\n }),\n },\n];\n"],
5
+ "mappings": "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",
6
+ "names": ["Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "FunctionTrigger", "ClientCapabilities", "ClientEvents", "DeckCapabilities", "RefArray", "AIChatType", "typename", "AUTOMATION_PLUGIN", "AutomationPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "SetupMetadata", "Metadata", "ChainType", "typename", "metadata", "placeholder", "ns", "AUTOMATION_PLUGIN", "icon", "loadReferences", "chain", "RefArray", "loadAll", "prompts", "AIChatType", "createObject", "props", "createIntent", "AutomationAction", "Create", "ClientEvents", "SetupSchema", "ClientCapabilities", "SystemSchema", "ChainPromptType", "FunctionTrigger", "ServiceType", "Schema", "Startup", "DeckCapabilities", "ComplementaryPanel", "label", "SetupSurfaces", "ReactSurface", "SetupAppGraph", "AppGraphBuilder", "SetupIntents", "IntentResolver", "ClientReady", "AiClient", "create", "str", "text", "filter", "value", "undefined", "flat", "join", "chainPresets", "id", "title", "createPrompt", "create", "ChainPromptType", "command", "template", "inputs", "type", "ChainInputType", "VALUE", "name", "PASS_THROUGH", "CONTEXT", "SCHEMA", "RETRIEVER", "RESOLVER"]
7
7
  }
@@ -1,8 +1,8 @@
1
1
  import {
2
2
  AIChatType,
3
3
  AutomationAction
4
- } from "./chunk-7XADMUOW.mjs";
5
- import "./chunk-HKX3D3ZP.mjs";
4
+ } from "./chunk-Q4IMHYGH.mjs";
5
+ import "./chunk-R4JH4TLE.mjs";
6
6
 
7
7
  // packages/plugins/experimental/plugin-automation/src/capabilities/intent-resolver.ts
8
8
  import { Capabilities, contributes, createResolver } from "@dxos/app-framework";
@@ -26,4 +26,4 @@ var intent_resolver_default = () => contributes(Capabilities.IntentResolver, cre
26
26
  export {
27
27
  intent_resolver_default as default
28
28
  };
29
- //# sourceMappingURL=intent-resolver-754MPV7H.mjs.map
29
+ //# sourceMappingURL=intent-resolver-BWAXKT27.mjs.map