@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
@@ -26,31 +26,52 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_HEYQONXC_exports = {};
30
- __export(chunk_HEYQONXC_exports, {
29
+ var chunk_HMBKP6VG_exports = {};
30
+ __export(chunk_HMBKP6VG_exports, {
31
+ AmbientChatDialog: () => AmbientChatDialog,
31
32
  AutomationPanel: () => AutomationPanel,
32
33
  ChatContainer: () => ChatContainer,
33
34
  PromptEditor: () => PromptEditor,
34
35
  ServiceRegistry: () => ServiceRegistry
35
36
  });
36
- module.exports = __toCommonJS(chunk_HEYQONXC_exports);
37
- var import_chunk_6VMSH4P6 = require("./chunk-6VMSH4P6.cjs");
38
- var import_chunk_LU4HQWJD = require("./chunk-LU4HQWJD.cjs");
39
- var import_chunk_5VF5JKUN = require("./chunk-5VF5JKUN.cjs");
37
+ module.exports = __toCommonJS(chunk_HMBKP6VG_exports);
38
+ var import_chunk_CJGJXNY3 = require("./chunk-CJGJXNY3.cjs");
39
+ var import_chunk_GB7245FH = require("./chunk-GB7245FH.cjs");
40
+ var import_chunk_EQYHOTGG = require("./chunk-EQYHOTGG.cjs");
40
41
  var import_react = __toESM(require("react"));
41
- var import_echo = require("@dxos/react-client/echo");
42
42
  var import_react_ui = require("@dxos/react-ui");
43
+ var import_react2 = __toESM(require("react"));
44
+ var import_echo = require("@dxos/react-client/echo");
45
+ var import_react_ui2 = require("@dxos/react-ui");
43
46
  var import_react_ui_editor = require("@dxos/react-ui-editor");
44
47
  var import_react_ui_theme = require("@dxos/react-ui-theme");
45
48
  var import_util = require("@dxos/util");
46
49
  var import_language = require("@codemirror/language");
47
50
  var import_react_ui_editor2 = require("@dxos/react-ui-editor");
48
51
  var import_react_ui_theme2 = require("@dxos/react-ui-theme");
49
- var import_react2 = __toESM(require("react"));
52
+ var import_react3 = __toESM(require("react"));
50
53
  var import_echo2 = require("@dxos/client/echo");
51
54
  var import_echo3 = require("@dxos/react-client/echo");
52
- var import_react_ui2 = require("@dxos/react-ui");
53
- var import_react3 = require("react");
55
+ var import_react_ui3 = require("@dxos/react-ui");
56
+ var import_react4 = require("react");
57
+ var preventDefault = (event) => event.preventDefault();
58
+ var AmbientChatDialog = () => {
59
+ const { t } = (0, import_react_ui.useTranslation)(import_chunk_EQYHOTGG.AUTOMATION_PLUGIN);
60
+ return /* @__PURE__ */ import_react.default.createElement("div", {
61
+ role: "none",
62
+ className: "dx-dialog__overlay bg-transparent pointer-events-none",
63
+ "data-block-align": "end"
64
+ }, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Dialog.Content, {
65
+ onInteractOutside: preventDefault,
66
+ classNames: "pointer-events-auto",
67
+ inOverlayLayout: true
68
+ }, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Dialog.Title, {
69
+ classNames: "sr-only"
70
+ }, t("ambient chat dialog title")), /* @__PURE__ */ import_react.default.createElement(import_react_ui.Dialog.Close, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Icon, {
71
+ icon: "ph--x--regular",
72
+ size: 4
73
+ })), /* @__PURE__ */ import_react.default.createElement("h1", null, "Hello")));
74
+ };
54
75
  var nameRegex = /\{([\w-]+)}/;
55
76
  var parser = import_language.StreamLanguage.define({
56
77
  token: (stream) => {
@@ -82,15 +103,15 @@ var promptExtension = [
82
103
  ];
83
104
  var inputTypes = [
84
105
  {
85
- value: import_chunk_LU4HQWJD.ChainInputType.VALUE,
106
+ value: import_chunk_GB7245FH.ChainInputType.VALUE,
86
107
  label: "Value"
87
108
  },
88
109
  {
89
- value: import_chunk_LU4HQWJD.ChainInputType.PASS_THROUGH,
110
+ value: import_chunk_GB7245FH.ChainInputType.PASS_THROUGH,
90
111
  label: "Pass through"
91
112
  },
92
113
  {
93
- value: import_chunk_LU4HQWJD.ChainInputType.RETRIEVER,
114
+ value: import_chunk_GB7245FH.ChainInputType.RETRIEVER,
94
115
  label: "Retriever"
95
116
  },
96
117
  // {
@@ -102,21 +123,21 @@ var inputTypes = [
102
123
  // label: 'Query',
103
124
  // },
104
125
  {
105
- value: import_chunk_LU4HQWJD.ChainInputType.RESOLVER,
126
+ value: import_chunk_GB7245FH.ChainInputType.RESOLVER,
106
127
  label: "Resolver"
107
128
  },
108
129
  {
109
- value: import_chunk_LU4HQWJD.ChainInputType.CONTEXT,
130
+ value: import_chunk_GB7245FH.ChainInputType.CONTEXT,
110
131
  label: "Context"
111
132
  },
112
133
  {
113
- value: import_chunk_LU4HQWJD.ChainInputType.SCHEMA,
134
+ value: import_chunk_GB7245FH.ChainInputType.SCHEMA,
114
135
  label: "Schema"
115
136
  }
116
137
  ];
117
138
  var getInputType = (type) => inputTypes.find(({ value }) => String(value) === type)?.value;
118
139
  var usePromptInputs = (prompt) => {
119
- (0, import_react.useEffect)(() => {
140
+ (0, import_react2.useEffect)(() => {
120
141
  const text = prompt.template ?? "";
121
142
  if (!prompt.inputs) {
122
143
  prompt.inputs = [];
@@ -156,8 +177,8 @@ var usePromptInputs = (prompt) => {
156
177
  ]);
157
178
  };
158
179
  var PromptEditor = ({ prompt, commandEditable = true }) => {
159
- const { t } = (0, import_react_ui.useTranslation)(import_chunk_5VF5JKUN.AUTOMATION_PLUGIN);
160
- const { themeMode } = (0, import_react_ui.useThemeContext)();
180
+ const { t } = (0, import_react_ui2.useTranslation)(import_chunk_EQYHOTGG.AUTOMATION_PLUGIN);
181
+ const { themeMode } = (0, import_react_ui2.useThemeContext)();
161
182
  const { parentRef } = (0, import_react_ui_editor.useTextEditor)(() => ({
162
183
  initialValue: prompt.template,
163
184
  extensions: [
@@ -187,53 +208,53 @@ var PromptEditor = ({ prompt, commandEditable = true }) => {
187
208
  prompt
188
209
  ]);
189
210
  usePromptInputs(prompt);
190
- return /* @__PURE__ */ import_react.default.createElement("div", {
211
+ return /* @__PURE__ */ import_react2.default.createElement("div", {
191
212
  className: (0, import_react_ui_theme.mx)("flex flex-col w-full overflow-hidden gap-4", import_react_ui_theme.groupBorder)
192
- }, commandEditable && /* @__PURE__ */ import_react.default.createElement("div", {
213
+ }, commandEditable && /* @__PURE__ */ import_react2.default.createElement("div", {
193
214
  className: "flex items-center pl-4"
194
- }, /* @__PURE__ */ import_react.default.createElement("span", {
215
+ }, /* @__PURE__ */ import_react2.default.createElement("span", {
195
216
  className: "text-neutral-500"
196
- }, "/"), /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.Root, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.TextInput, {
217
+ }, "/"), /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Input.Root, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Input.TextInput, {
197
218
  placeholder: t("command placeholder"),
198
219
  classNames: (0, import_react_ui_theme.mx)("is-full bg-transparent m-2"),
199
220
  value: prompt.command ?? "",
200
221
  onChange: (event) => {
201
222
  prompt.command = event.target.value.replace(/\w/g, "");
202
223
  }
203
- }))), /* @__PURE__ */ import_react.default.createElement("div", {
224
+ }))), /* @__PURE__ */ import_react2.default.createElement("div", {
204
225
  ref: parentRef,
205
226
  className: (0, import_react_ui_theme.mx)(import_react_ui_theme.attentionSurface, "rounded", "min-h-[120px]")
206
- }), (prompt.inputs?.length ?? 0) > 0 && /* @__PURE__ */ import_react.default.createElement("div", {
227
+ }), (prompt.inputs?.length ?? 0) > 0 && /* @__PURE__ */ import_react2.default.createElement("div", {
207
228
  className: "flex flex-col"
208
- }, /* @__PURE__ */ import_react.default.createElement("table", {
229
+ }, /* @__PURE__ */ import_react2.default.createElement("table", {
209
230
  className: "w-full table-fixed border-collapse my-2"
210
- }, /* @__PURE__ */ import_react.default.createElement("tbody", null, prompt.inputs?.filter(import_util.nonNullable).map((input) => /* @__PURE__ */ import_react.default.createElement("tr", {
231
+ }, /* @__PURE__ */ import_react2.default.createElement("tbody", null, prompt.inputs?.filter(import_util.nonNullable).map((input) => /* @__PURE__ */ import_react2.default.createElement("tr", {
211
232
  key: input.name
212
- }, /* @__PURE__ */ import_react.default.createElement("td", {
233
+ }, /* @__PURE__ */ import_react2.default.createElement("td", {
213
234
  className: "w-[160px] p-1 font-mono text-sm whitespace-nowrap truncate"
214
- }, /* @__PURE__ */ import_react.default.createElement("code", {
235
+ }, /* @__PURE__ */ import_react2.default.createElement("code", {
215
236
  className: "px-2"
216
- }, input.name)), /* @__PURE__ */ import_react.default.createElement("td", {
237
+ }, input.name)), /* @__PURE__ */ import_react2.default.createElement("td", {
217
238
  className: "w-[120px] p-1"
218
- }, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.Root, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Root, {
239
+ }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Input.Root, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.Root, {
219
240
  value: String(input.type),
220
241
  onValueChange: (type) => {
221
- input.type = getInputType(type) ?? import_chunk_LU4HQWJD.ChainInputType.VALUE;
242
+ input.type = getInputType(type) ?? import_chunk_GB7245FH.ChainInputType.VALUE;
222
243
  }
223
- }, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.TriggerButton, {
244
+ }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.TriggerButton, {
224
245
  placeholder: "Type",
225
246
  classNames: "is-full"
226
- }), /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Portal, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Content, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Viewport, null, inputTypes.map(({ value, label }) => /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Option, {
247
+ }), /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.Portal, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.Content, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.Viewport, null, inputTypes.map(({ value, label }) => /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.Option, {
227
248
  key: value,
228
249
  value: String(value)
229
- }, label)))))))), /* @__PURE__ */ import_react.default.createElement("td", {
250
+ }, label)))))))), /* @__PURE__ */ import_react2.default.createElement("td", {
230
251
  className: "p-1 pr-2"
231
252
  }, input.type !== void 0 && [
232
- import_chunk_LU4HQWJD.ChainInputType.VALUE,
233
- import_chunk_LU4HQWJD.ChainInputType.CONTEXT,
234
- import_chunk_LU4HQWJD.ChainInputType.RESOLVER,
235
- import_chunk_LU4HQWJD.ChainInputType.SCHEMA
236
- ].includes(input.type) && /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.Root, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.TextInput, {
253
+ import_chunk_GB7245FH.ChainInputType.VALUE,
254
+ import_chunk_GB7245FH.ChainInputType.CONTEXT,
255
+ import_chunk_GB7245FH.ChainInputType.RESOLVER,
256
+ import_chunk_GB7245FH.ChainInputType.SCHEMA
257
+ ].includes(input.type) && /* @__PURE__ */ import_react2.default.createElement("div", null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Input.Root, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Input.TextInput, {
237
258
  placeholder: t("command placeholder"),
238
259
  classNames: (0, import_react_ui_theme.mx)("is-full bg-transparent"),
239
260
  value: input.value ?? "",
@@ -243,9 +264,9 @@ var PromptEditor = ({ prompt, commandEditable = true }) => {
243
264
  }))))))))));
244
265
  };
245
266
  var ServiceRegistry = ({ space }) => {
246
- const matchingServices = (0, import_chunk_6VMSH4P6.useServiceRegistry)(space);
247
- const enabledServices = (0, import_echo3.useQuery)(space, import_echo2.Filter.schema(import_chunk_LU4HQWJD.ServiceType));
248
- const services = (0, import_react2.useMemo)(() => {
267
+ const matchingServices = (0, import_chunk_CJGJXNY3.useServices)(space);
268
+ const enabledServices = (0, import_echo3.useQuery)(space, import_echo2.Filter.schema(import_chunk_GB7245FH.ServiceType));
269
+ const services = (0, import_react3.useMemo)(() => {
249
270
  return matchingServices.map((service) => enabledServices.find((s) => s.serviceId === service.serviceId) ?? service);
250
271
  }, [
251
272
  matchingServices,
@@ -258,9 +279,9 @@ var ServiceRegistry = ({ space }) => {
258
279
  space.db.remove(service);
259
280
  }
260
281
  };
261
- return /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.List, {
262
- classNames: "h-full grid auto-rows-[5rem] gap-2 p-2 pis-2 pie-3 overflow-y-auto scrollbar-thin"
263
- }, services.map((service) => /* @__PURE__ */ import_react2.default.createElement(ServiceItem, {
282
+ return /* @__PURE__ */ import_react3.default.createElement(import_react_ui3.List, {
283
+ classNames: "h-full grid auto-rows-[5rem] gap-2 p-2 pis-2 pie-2 overflow-y-auto scrollbar-thin"
284
+ }, services.map((service) => /* @__PURE__ */ import_react3.default.createElement(ServiceItem, {
264
285
  key: service.serviceId,
265
286
  service,
266
287
  enabled: service.enabled,
@@ -268,35 +289,36 @@ var ServiceRegistry = ({ space }) => {
268
289
  })));
269
290
  };
270
291
  var ServiceItem = ({ service, enabled, setEnabled }) => {
271
- return /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.ListItem.Root, {
292
+ return /* @__PURE__ */ import_react3.default.createElement(import_react_ui3.ListItem.Root, {
272
293
  classNames: "flex flex-col gap-1 p-1 overflow-hidden rounded-md border border-separator"
273
- }, /* @__PURE__ */ import_react2.default.createElement("div", {
294
+ }, /* @__PURE__ */ import_react3.default.createElement("div", {
274
295
  className: "grid grid-cols-[40px_1fr_40px]"
275
- }, /* @__PURE__ */ import_react2.default.createElement("div", {
296
+ }, /* @__PURE__ */ import_react3.default.createElement("div", {
276
297
  className: "flex gow justify-center items-center"
277
- }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Icon, {
278
- icon: "ph--placeholder--regular",
298
+ }, /* @__PURE__ */ import_react3.default.createElement(import_react_ui3.Icon, {
299
+ icon: import_chunk_GB7245FH.categoryIcons[service.category ?? "default"] ?? "ph--placeholder--regular",
279
300
  size: 6
280
- })), /* @__PURE__ */ import_react2.default.createElement("div", {
301
+ })), /* @__PURE__ */ import_react3.default.createElement("div", {
281
302
  className: "grow items-center truncate mie-2"
282
- }, service.name), /* @__PURE__ */ import_react2.default.createElement("div", {
303
+ }, service.name), /* @__PURE__ */ import_react3.default.createElement("div", {
283
304
  className: "flex gow justify-center items-center"
284
- }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Input.Root, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Input.Switch, {
305
+ }, /* @__PURE__ */ import_react3.default.createElement(import_react_ui3.Input.Root, null, /* @__PURE__ */ import_react3.default.createElement(import_react_ui3.Input.Switch, {
285
306
  checked: enabled,
286
307
  onClick: () => setEnabled?.(!enabled)
287
- })))), /* @__PURE__ */ import_react2.default.createElement("div", {
308
+ })))), /* @__PURE__ */ import_react3.default.createElement("div", {
288
309
  className: "grid grid-cols-[40px_1fr]"
289
- }, /* @__PURE__ */ import_react2.default.createElement("div", null), /* @__PURE__ */ import_react2.default.createElement("div", {
290
- className: "text-sm text-subdued line-clamp-2"
310
+ }, /* @__PURE__ */ import_react3.default.createElement("div", null), /* @__PURE__ */ import_react3.default.createElement("div", {
311
+ className: "text-sm text-subdued line-clamp-2 mie-1"
291
312
  }, service.description)));
292
313
  };
293
- var AutomationPanel = (0, import_react3.lazy)(() => import("./AutomationPanel-LRDEDGXI.cjs"));
294
- var ChatContainer = (0, import_react3.lazy)(() => import("./ChatContainer-6LZX4K2Z.cjs"));
314
+ var AutomationPanel = (0, import_react4.lazy)(() => import("./AutomationPanel-G6EDDYWW.cjs"));
315
+ var ChatContainer = (0, import_react4.lazy)(() => import("./ChatContainer-EN24W3K4.cjs"));
295
316
  // Annotate the CommonJS export names for ESM import in node:
296
317
  0 && (module.exports = {
318
+ AmbientChatDialog,
297
319
  AutomationPanel,
298
320
  ChatContainer,
299
321
  PromptEditor,
300
322
  ServiceRegistry
301
323
  });
302
- //# sourceMappingURL=chunk-HEYQONXC.cjs.map
324
+ //# sourceMappingURL=chunk-HMBKP6VG.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/AmbientChatDialog/AmbientChatDialog.tsx", "../../../src/components/PromptEditor/PromptEditor.tsx", "../../../src/components/PromptEditor/prompt-extension.ts", "../../../src/components/ServiceRegistry/ServiceRegistry.tsx", "../../../src/components/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Dialog, Icon, useTranslation } from '@dxos/react-ui';\n\nimport { AUTOMATION_PLUGIN } from '../../meta';\n\nconst preventDefault = (event: Event) => event.preventDefault();\n\nexport const AmbientChatDialog = () => {\n const { t } = useTranslation(AUTOMATION_PLUGIN);\n return (\n <div role='none' className='dx-dialog__overlay bg-transparent pointer-events-none' data-block-align='end'>\n <Dialog.Content onInteractOutside={preventDefault} classNames='pointer-events-auto' inOverlayLayout>\n <Dialog.Title classNames='sr-only'>{t('ambient chat dialog title')}</Dialog.Title>\n <Dialog.Close>\n <Icon icon='ph--x--regular' size={4} />\n </Dialog.Close>\n <h1>Hello</h1>\n </Dialog.Content>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Schema as S } from '@effect/schema';\nimport React, { useEffect } from 'react';\n\nimport { createDocAccessor } from '@dxos/react-client/echo';\nimport { Input, Select, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport {\n createBasicExtensions,\n createDataExtensions,\n createThemeExtensions,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport { attentionSurface, groupBorder, mx } from '@dxos/react-ui-theme';\nimport { nonNullable } from '@dxos/util';\n\nimport { nameRegex, promptExtension } from './prompt-extension';\nimport { AUTOMATION_PLUGIN } from '../../meta';\nimport { type ChainInput, ChainInputType, type ChainPromptType } from '../../types';\n\nconst inputTypes = [\n {\n value: ChainInputType.VALUE,\n label: 'Value',\n },\n {\n value: ChainInputType.PASS_THROUGH,\n label: 'Pass through',\n },\n {\n value: ChainInputType.RETRIEVER,\n label: 'Retriever',\n },\n // {\n // value: ChainInputType.FUNCTION,\n // label: 'Function',\n // },\n // {\n // value: ChainInputType.QUERY,\n // label: 'Query',\n // },\n {\n value: ChainInputType.RESOLVER,\n label: 'Resolver',\n },\n {\n value: ChainInputType.CONTEXT,\n label: 'Context',\n },\n {\n value: ChainInputType.SCHEMA,\n label: 'Schema',\n },\n];\n\nconst getInputType = (type: string) => inputTypes.find(({ value }) => String(value) === type)?.value;\n\nconst usePromptInputs = (prompt: ChainPromptType) => {\n useEffect(() => {\n const text = prompt.template ?? '';\n if (!prompt.inputs) {\n prompt.inputs = []; // TODO(burdon): Required?\n }\n\n const regex = new RegExp(nameRegex, 'g');\n const variables = new Set<string>([...text.matchAll(regex)].map((m) => m[1]));\n\n // Create map of unclaimed inputs.\n const unclaimed = new Map<string, ChainInput>(\n prompt.inputs?.filter(nonNullable).map((input) => [input.name, input]),\n );\n const missing: string[] = [];\n Array.from(variables.values()).forEach((name) => {\n if (unclaimed.has(name)) {\n unclaimed.delete(name);\n } else {\n missing.push(name);\n }\n });\n\n // Match or create new inputs.\n const values = unclaimed.values();\n missing.forEach((name) => {\n const next = values.next().value;\n if (next) {\n next.name = name;\n } else {\n prompt.inputs?.push({ name });\n }\n });\n\n // Remove unclaimed (deleted) inputs.\n // TODO(burdon): If user types incorrect name value, it will be deleted. Garbage collect?\n for (const input of values) {\n prompt.inputs.splice(prompt.inputs.indexOf(input), 1);\n }\n }, [prompt.template]);\n};\n\nexport type PromptEditorProps = {\n prompt: ChainPromptType;\n commandEditable?: boolean;\n schema?: S.Schema<any, any, any>;\n};\n\nexport const PromptEditor = ({ prompt, commandEditable = true }: PromptEditorProps) => {\n const { t } = useTranslation(AUTOMATION_PLUGIN);\n const { themeMode } = useThemeContext();\n\n const { parentRef } = useTextEditor(\n () => ({\n initialValue: prompt.template,\n extensions: [\n createDataExtensions({\n id: prompt.id,\n text: prompt.template !== undefined ? createDocAccessor(prompt, ['template']) : undefined,\n }),\n createBasicExtensions({\n bracketMatching: false,\n lineWrapping: true,\n placeholder: t('template placeholder'),\n }),\n createThemeExtensions({\n themeMode,\n slots: {\n content: { className: '!p-3' },\n },\n }),\n promptExtension,\n ],\n }),\n [themeMode, prompt],\n );\n\n usePromptInputs(prompt);\n\n return (\n <div className={mx('flex flex-col w-full overflow-hidden gap-4', groupBorder)}>\n {commandEditable && (\n <div className='flex items-center pl-4'>\n <span className='text-neutral-500'>/</span>\n <Input.Root>\n <Input.TextInput\n placeholder={t('command placeholder')}\n classNames={mx('is-full bg-transparent m-2')}\n value={prompt.command ?? ''}\n onChange={(event) => {\n prompt.command = event.target.value.replace(/\\w/g, '');\n }}\n />\n </Input.Root>\n </div>\n )}\n\n <div ref={parentRef} className={mx(attentionSurface, 'rounded', 'min-h-[120px]')} />\n\n {(prompt.inputs?.length ?? 0) > 0 && (\n <div className='flex flex-col'>\n {/* TODO(zan): Improve layout with grid */}\n <table className='w-full table-fixed border-collapse my-2'>\n <tbody>\n {prompt.inputs?.filter(nonNullable).map((input) => (\n <tr key={input.name}>\n <td className='w-[160px] p-1 font-mono text-sm whitespace-nowrap truncate'>\n <code className='px-2'>{input.name}</code>\n </td>\n <td className='w-[120px] p-1'>\n <Input.Root>\n <Select.Root\n value={String(input.type)}\n onValueChange={(type) => {\n input.type = getInputType(type) ?? ChainInputType.VALUE;\n }}\n >\n <Select.TriggerButton placeholder='Type' classNames='is-full' />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {inputTypes.map(({ value, label }) => (\n <Select.Option key={value} value={String(value)}>\n {label}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </Input.Root>\n </td>\n <td className='p-1 pr-2'>\n {input.type !== undefined &&\n [\n ChainInputType.VALUE,\n ChainInputType.CONTEXT,\n ChainInputType.RESOLVER,\n ChainInputType.SCHEMA,\n ].includes(input.type) && (\n <div>\n <Input.Root>\n <Input.TextInput\n placeholder={t('command placeholder')}\n classNames={mx('is-full bg-transparent')}\n value={input.value ?? ''}\n onChange={(event) => {\n input.value = event.target.value;\n }}\n />\n </Input.Root>\n </div>\n )}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )}\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { HighlightStyle, StreamLanguage, syntaxHighlighting } from '@codemirror/language';\nimport { type Extension } from '@codemirror/state';\n\nimport { tags } from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\n\nexport const nameRegex = /\\{([\\w-]+)}/;\n\nconst parser = StreamLanguage.define({\n token: (stream) => {\n if (stream.eatSpace()) {\n return null;\n }\n if (stream.match(/^#.*/)) {\n return 'lineComment';\n }\n if (stream.match(/^-+$/)) {\n return 'lineComment';\n }\n if (stream.match(nameRegex)) {\n return 'variableName';\n }\n stream.next();\n return null;\n },\n});\n\n/**\n * https://codemirror.net/examples/styling\n * https://lezer.codemirror.net/docs/ref/#highlight\n */\nconst highlightStyles = HighlightStyle.define([\n {\n tag: tags.variableName,\n class: mx('rounded border border-yellow-500 bg-yellow-100 text-black font-mono text-sm'),\n },\n]);\n\nexport const promptExtension: Extension = [parser, syntaxHighlighting(highlightStyles)];\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Filter, type Space } from '@dxos/client/echo';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { Icon, Input, List, ListItem } from '@dxos/react-ui';\n\nimport { useServices } from '../../hooks';\nimport { categoryIcons, ServiceType } from '../../types';\n\n// TODO(burdon): Option to show all/enabled/filter.\nexport const ServiceRegistry = ({ space }: { space: Space }) => {\n const matchingServices = useServices(space);\n const enabledServices = useQuery(space, Filter.schema(ServiceType));\n\n // Join matching services with enabled services.\n const services = useMemo(() => {\n return matchingServices.map((service) => enabledServices.find((s) => s.serviceId === service.serviceId) ?? service);\n }, [matchingServices, enabledServices]);\n\n const handleSetEnabled = (service: ServiceType, enabled: boolean) => {\n if (enabled) {\n space.db.add(service);\n } else {\n // TODO(burdon): Remove or disable?\n space.db.remove(service);\n }\n };\n\n return (\n <List classNames='h-full grid auto-rows-[5rem] gap-2 p-2 pis-2 pie-2 overflow-y-auto scrollbar-thin'>\n {services.map((service) => (\n <ServiceItem\n key={service.serviceId}\n service={service}\n enabled={service.enabled}\n setEnabled={(enabled) => handleSetEnabled(service, enabled)}\n />\n ))}\n </List>\n );\n};\n\nconst ServiceItem = ({\n service,\n enabled,\n setEnabled,\n}: {\n service: ServiceType;\n enabled?: boolean;\n setEnabled?: (enabled: boolean) => void;\n}) => {\n return (\n <ListItem.Root classNames='flex flex-col gap-1 p-1 overflow-hidden rounded-md border border-separator'>\n <div className='grid grid-cols-[40px_1fr_40px]'>\n <div className='flex gow justify-center items-center'>\n <Icon icon={categoryIcons[service.category ?? 'default'] ?? 'ph--placeholder--regular'} size={6} />\n </div>\n <div className='grow items-center truncate mie-2'>{service.name}</div>\n <div className='flex gow justify-center items-center'>\n <Input.Root>\n <Input.Switch checked={enabled} onClick={() => setEnabled?.(!enabled)} />\n </Input.Root>\n </div>\n </div>\n <div className='grid grid-cols-[40px_1fr]'>\n <div />\n <div className='text-sm text-subdued line-clamp-2 mie-1'>{service.description}</div>\n </div>\n </ListItem.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './AmbientChatDialog';\nexport * from './AutomationPanel';\nexport * from './ChatContainer';\nexport * from './MarkdownViewer';\nexport * from './PromptEditor';\nexport * from './ServiceRegistry';\nexport * from './Thread';\nexport * from './TriggerEditor';\n\nexport const AutomationPanel = lazy(() => import('./AutomationPanel'));\nexport const ChatContainer = lazy(() => import('./ChatContainer'));\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAkB;AAElB,sBAA6C;ACD7C,IAAAA,gBAAiC;AAEjC,kBAAkC;AAClC,IAAAC,mBAA+D;AAC/D,6BAKO;AACP,4BAAkD;AAClD,kBAA4B;ACZ5B,sBAAmE;AAGnE,IAAAC,0BAAqB;AACrB,IAAAC,yBAAmB;ACJnB,IAAAH,gBAA+B;AAE/B,IAAAI,eAAmC;AACnC,IAAAA,eAAyB;AACzB,IAAAH,mBAA4C;ACJ5C,IAAAD,gBAAqB;AJMrB,IAAMK,iBAAiB,CAACC,UAAiBA,MAAMD,eAAc;AAEtD,IAAME,oBAAoB,MAAA;AAC/B,QAAM,EAAEC,EAAC,QAAKC,gCAAeC,uCAAAA;AAC7B,SACE,6BAAAC,QAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;IAAwDC,oBAAiB;KAClG,6BAAAJ,QAAA,cAACK,uBAAOC,SAAO;IAACC,mBAAmBb;IAAgBc,YAAW;IAAsBC,iBAAAA;KAClF,6BAAAT,QAAA,cAACK,uBAAOK,OAAK;IAACF,YAAW;KAAWX,EAAE,2BAAA,CAAA,GACtC,6BAAAG,QAAA,cAACK,uBAAOM,OAAK,MACX,6BAAAX,QAAA,cAACY,sBAAAA;IAAKC,MAAK;IAAiBC,MAAM;OAEpC,6BAAAd,QAAA,cAACe,MAAAA,MAAG,OAAA,CAAA,CAAA;AAIZ;AEfO,IAAMC,YAAY;AAEzB,IAAMC,SAASC,+BAAeC,OAAO;EACnCC,OAAO,CAACC,WAAAA;AACN,QAAIA,OAAOC,SAAQ,GAAI;AACrB,aAAO;IACT;AACA,QAAID,OAAOE,MAAM,MAAA,GAAS;AACxB,aAAO;IACT;AACA,QAAIF,OAAOE,MAAM,MAAA,GAAS;AACxB,aAAO;IACT;AACA,QAAIF,OAAOE,MAAMP,SAAAA,GAAY;AAC3B,aAAO;IACT;AACAK,WAAOG,KAAI;AACX,WAAO;EACT;AACF,CAAA;AAMA,IAAMC,kBAAkBC,+BAAeP,OAAO;EAC5C;IACEQ,KAAKC,6BAAKC;IACVC,WAAOC,2BAAG,6EAAA;EACZ;CACD;AAEM,IAAMC,kBAA6B;EAACf;MAAQgB,oCAAmBR,eAAAA;;ADpBtE,IAAMS,aAAa;EACjB;IACEC,OAAOC,qCAAeC;IACtBC,OAAO;EACT;EACA;IACEH,OAAOC,qCAAeG;IACtBD,OAAO;EACT;EACA;IACEH,OAAOC,qCAAeI;IACtBF,OAAO;EACT;;;;;;;;;EASA;IACEH,OAAOC,qCAAeK;IACtBH,OAAO;EACT;EACA;IACEH,OAAOC,qCAAeM;IACtBJ,OAAO;EACT;EACA;IACEH,OAAOC,qCAAeO;IACtBL,OAAO;EACT;;AAGF,IAAMM,eAAe,CAACC,SAAiBX,WAAWY,KAAK,CAAC,EAAEX,MAAK,MAAOY,OAAOZ,KAAAA,MAAWU,IAAAA,GAAOV;AAE/F,IAAMa,kBAAkB,CAACC,WAAAA;AACvBC,+BAAU,MAAA;AACR,UAAMC,OAAOF,OAAOG,YAAY;AAChC,QAAI,CAACH,OAAOI,QAAQ;AAClBJ,aAAOI,SAAS,CAAA;IAClB;AAEA,UAAMC,QAAQ,IAAIC,OAAOvC,WAAW,GAAA;AACpC,UAAMwC,YAAY,IAAIC,IAAY;SAAIN,KAAKO,SAASJ,KAAAA;MAAQK,IAAI,CAACC,MAAMA,EAAE,CAAA,CAAE,CAAA;AAG3E,UAAMC,YAAY,IAAIC,IACpBb,OAAOI,QAAQU,OAAOC,uBAAAA,EAAaL,IAAI,CAACM,UAAU;MAACA,MAAMC;MAAMD;KAAM,CAAA;AAEvE,UAAME,UAAoB,CAAA;AAC1BC,UAAMC,KAAKb,UAAUc,OAAM,CAAA,EAAIC,QAAQ,CAACL,SAAAA;AACtC,UAAIL,UAAUW,IAAIN,IAAAA,GAAO;AACvBL,kBAAUY,OAAOP,IAAAA;MACnB,OAAO;AACLC,gBAAQO,KAAKR,IAAAA;MACf;IACF,CAAA;AAGA,UAAMI,SAAST,UAAUS,OAAM;AAC/BH,YAAQI,QAAQ,CAACL,SAAAA;AACf,YAAM1C,OAAO8C,OAAO9C,KAAI,EAAGW;AAC3B,UAAIX,MAAM;AACRA,aAAK0C,OAAOA;MACd,OAAO;AACLjB,eAAOI,QAAQqB,KAAK;UAAER;QAAK,CAAA;MAC7B;IACF,CAAA;AAIA,eAAWD,SAASK,QAAQ;AAC1BrB,aAAOI,OAAOsB,OAAO1B,OAAOI,OAAOuB,QAAQX,KAAAA,GAAQ,CAAA;IACrD;EACF,GAAG;IAAChB,OAAOG;GAAS;AACtB;AAQO,IAAMyB,eAAe,CAAC,EAAE5B,QAAQ6B,kBAAkB,KAAI,MAAqB;AAChF,QAAM,EAAEjF,EAAC,QAAKC,iBAAAA,gBAAeC,uCAAAA;AAC7B,QAAM,EAAEgF,UAAS,QAAKC,kCAAAA;AAEtB,QAAM,EAAEC,UAAS,QAAKC,sCACpB,OAAO;IACLC,cAAclC,OAAOG;IACrBgC,YAAY;UACVC,6CAAqB;QACnBC,IAAIrC,OAAOqC;QACXnC,MAAMF,OAAOG,aAAamC,aAAYC,+BAAkBvC,QAAQ;UAAC;SAAW,IAAIsC;MAClF,CAAA;UACAE,8CAAsB;QACpBC,iBAAiB;QACjBC,cAAc;QACdC,aAAa/F,EAAE,sBAAA;MACjB,CAAA;UACAgG,8CAAsB;QACpBd;QACAe,OAAO;UACLC,SAAS;YAAE5F,WAAW;UAAO;QAC/B;MACF,CAAA;MACA6B;;EAEJ,IACA;IAAC+C;IAAW9B;GAAO;AAGrBD,kBAAgBC,MAAAA;AAEhB,SACEjD,8BAAAA,QAAA,cAACC,OAAAA;IAAIE,eAAW4B,sBAAAA,IAAG,8CAA8CiE,iCAAAA;KAC9DlB,mBACC9E,8BAAAA,QAAA,cAACC,OAAAA;IAAIE,WAAU;KACbH,8BAAAA,QAAA,cAACiG,QAAAA;IAAK9F,WAAU;KAAmB,GAAA,GACnCH,8BAAAA,QAAA,cAACkG,uBAAMC,MAAI,MACTnG,8BAAAA,QAAA,cAACkG,uBAAME,WAAS;IACdR,aAAa/F,EAAE,qBAAA;IACfW,gBAAYuB,sBAAAA,IAAG,4BAAA;IACfI,OAAOc,OAAOoD,WAAW;IACzBC,UAAU,CAAC3G,UAAAA;AACTsD,aAAOoD,UAAU1G,MAAM4G,OAAOpE,MAAMqE,QAAQ,OAAO,EAAA;IACrD;QAMRxG,8BAAAA,QAAA,cAACC,OAAAA;IAAIwG,KAAKxB;IAAW9E,eAAW4B,sBAAAA,IAAG2E,wCAAkB,WAAW,eAAA;OAE9DzD,OAAOI,QAAQsD,UAAU,KAAK,KAC9B3G,8BAAAA,QAAA,cAACC,OAAAA;IAAIE,WAAU;KAEbH,8BAAAA,QAAA,cAAC4G,SAAAA;IAAMzG,WAAU;KACfH,8BAAAA,QAAA,cAAC6G,SAAAA,MACE5D,OAAOI,QAAQU,OAAOC,uBAAAA,EAAaL,IAAI,CAACM,UACvCjE,8BAAAA,QAAA,cAAC8G,MAAAA;IAAGC,KAAK9C,MAAMC;KACblE,8BAAAA,QAAA,cAACgH,MAAAA;IAAG7G,WAAU;KACZH,8BAAAA,QAAA,cAACiH,QAAAA;IAAK9G,WAAU;KAAQ8D,MAAMC,IAAI,CAAA,GAEpClE,8BAAAA,QAAA,cAACgH,MAAAA;IAAG7G,WAAU;KACZH,8BAAAA,QAAA,cAACkG,uBAAMC,MAAI,MACTnG,8BAAAA,QAAA,cAACkH,wBAAOf,MAAI;IACVhE,OAAOY,OAAOkB,MAAMpB,IAAI;IACxBsE,eAAe,CAACtE,SAAAA;AACdoB,YAAMpB,OAAOD,aAAaC,IAAAA,KAAST,qCAAeC;IACpD;KAEArC,8BAAAA,QAAA,cAACkH,wBAAOE,eAAa;IAACxB,aAAY;IAAOpF,YAAW;MACpDR,8BAAAA,QAAA,cAACkH,wBAAOG,QAAM,MACZrH,8BAAAA,QAAA,cAACkH,wBAAO5G,SAAO,MACbN,8BAAAA,QAAA,cAACkH,wBAAOI,UAAQ,MACbpF,WAAWyB,IAAI,CAAC,EAAExB,OAAOG,MAAK,MAC7BtC,8BAAAA,QAAA,cAACkH,wBAAOK,QAAM;IAACR,KAAK5E;IAAOA,OAAOY,OAAOZ,KAAAA;KACtCG,KAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GASjBtC,8BAAAA,QAAA,cAACgH,MAAAA;IAAG7G,WAAU;KACX8D,MAAMpB,SAAS0C,UACd;IACEnD,qCAAeC;IACfD,qCAAeM;IACfN,qCAAeK;IACfL,qCAAeO;IACf6E,SAASvD,MAAMpB,IAAI,KACnB7C,8BAAAA,QAAA,cAACC,OAAAA,MACCD,8BAAAA,QAAA,cAACkG,uBAAMC,MAAI,MACTnG,8BAAAA,QAAA,cAACkG,uBAAME,WAAS;IACdR,aAAa/F,EAAE,qBAAA;IACfW,gBAAYuB,sBAAAA,IAAG,wBAAA;IACfI,OAAO8B,MAAM9B,SAAS;IACtBmE,UAAU,CAAC3G,UAAAA;AACTsE,YAAM9B,QAAQxC,MAAM4G,OAAOpE;IAC7B;;AAc9B;AE/MO,IAAMsF,kBAAkB,CAAC,EAAEC,MAAK,MAAoB;AACzD,QAAMC,uBAAmBC,mCAAYF,KAAAA;AACrC,QAAMG,sBAAkBC,uBAASJ,OAAOK,oBAAOC,OAAOC,iCAAAA,CAAAA;AAGtD,QAAMC,eAAWC,uBAAQ,MAAA;AACvB,WAAOR,iBAAiBhE,IAAI,CAACyE,YAAYP,gBAAgB/E,KAAK,CAACuF,MAAMA,EAAEC,cAAcF,QAAQE,SAAS,KAAKF,OAAAA;EAC7G,GAAG;IAACT;IAAkBE;GAAgB;AAEtC,QAAMU,mBAAmB,CAACH,SAAsBI,YAAAA;AAC9C,QAAIA,SAAS;AACXd,YAAMe,GAAGC,IAAIN,OAAAA;IACf,OAAO;AAELV,YAAMe,GAAGE,OAAOP,OAAAA;IAClB;EACF;AAEA,SACEpI,8BAAAA,QAAA,cAAC4I,uBAAAA;IAAKpI,YAAW;KACd0H,SAASvE,IAAI,CAACyE,YACbpI,8BAAAA,QAAA,cAAC6I,aAAAA;IACC9B,KAAKqB,QAAQE;IACbF;IACAI,SAASJ,QAAQI;IACjBM,YAAY,CAACN,YAAYD,iBAAiBH,SAASI,OAAAA;;AAK7D;AAEA,IAAMK,cAAc,CAAC,EACnBT,SACAI,SACAM,WAAU,MAKX;AACC,SACE9I,8BAAAA,QAAA,cAAC+I,0BAAS5C,MAAI;IAAC3F,YAAW;KACxBR,8BAAAA,QAAA,cAACC,OAAAA;IAAIE,WAAU;KACbH,8BAAAA,QAAA,cAACC,OAAAA;IAAIE,WAAU;KACbH,8BAAAA,QAAA,cAACY,iBAAAA,MAAAA;IAAKC,MAAMmI,oCAAcZ,QAAQa,YAAY,SAAA,KAAc;IAA4BnI,MAAM;OAEhGd,8BAAAA,QAAA,cAACC,OAAAA;IAAIE,WAAU;KAAoCiI,QAAQlE,IAAI,GAC/DlE,8BAAAA,QAAA,cAACC,OAAAA;IAAIE,WAAU;KACbH,8BAAAA,QAAA,cAACkG,iBAAAA,MAAMC,MAAI,MACTnG,8BAAAA,QAAA,cAACkG,iBAAAA,MAAMgD,QAAM;IAACC,SAASX;IAASY,SAAS,MAAMN,aAAa,CAACN,OAAAA;SAInExI,8BAAAA,QAAA,cAACC,OAAAA;IAAIE,WAAU;KACbH,8BAAAA,QAAA,cAACC,OAAAA,IAAAA,GACDD,8BAAAA,QAAA,cAACC,OAAAA;IAAIE,WAAU;KAA2CiI,QAAQiB,WAAW,CAAA,CAAA;AAIrF;AC3DO,IAAMC,sBAAkBC,oBAAK,MAAM,OAAO,gCAAA,CAAA;AAC1C,IAAMC,oBAAgBD,oBAAK,MAAM,OAAO,8BAAA,CAAA;",
6
+ "names": ["import_react", "import_react_ui", "import_react_ui_editor", "import_react_ui_theme", "import_echo", "preventDefault", "event", "AmbientChatDialog", "t", "useTranslation", "AUTOMATION_PLUGIN", "React", "div", "role", "className", "data-block-align", "Dialog", "Content", "onInteractOutside", "classNames", "inOverlayLayout", "Title", "Close", "Icon", "icon", "size", "h1", "nameRegex", "parser", "StreamLanguage", "define", "token", "stream", "eatSpace", "match", "next", "highlightStyles", "HighlightStyle", "tag", "tags", "variableName", "class", "mx", "promptExtension", "syntaxHighlighting", "inputTypes", "value", "ChainInputType", "VALUE", "label", "PASS_THROUGH", "RETRIEVER", "RESOLVER", "CONTEXT", "SCHEMA", "getInputType", "type", "find", "String", "usePromptInputs", "prompt", "useEffect", "text", "template", "inputs", "regex", "RegExp", "variables", "Set", "matchAll", "map", "m", "unclaimed", "Map", "filter", "nonNullable", "input", "name", "missing", "Array", "from", "values", "forEach", "has", "delete", "push", "splice", "indexOf", "PromptEditor", "commandEditable", "themeMode", "useThemeContext", "parentRef", "useTextEditor", "initialValue", "extensions", "createDataExtensions", "id", "undefined", "createDocAccessor", "createBasicExtensions", "bracketMatching", "lineWrapping", "placeholder", "createThemeExtensions", "slots", "content", "groupBorder", "span", "Input", "Root", "TextInput", "command", "onChange", "target", "replace", "ref", "attentionSurface", "length", "table", "tbody", "tr", "key", "td", "code", "Select", "onValueChange", "TriggerButton", "Portal", "Viewport", "Option", "includes", "ServiceRegistry", "space", "matchingServices", "useServices", "enabledServices", "useQuery", "Filter", "schema", "ServiceType", "services", "useMemo", "service", "s", "serviceId", "handleSetEnabled", "enabled", "db", "add", "remove", "List", "ServiceItem", "setEnabled", "ListItem", "categoryIcons", "category", "Switch", "checked", "onClick", "description", "AutomationPanel", "lazy", "ChatContainer"]
7
+ }
@@ -26,13 +26,13 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_WWU5FVAO_exports = {};
30
- __export(chunk_WWU5FVAO_exports, {
29
+ var chunk_QXIHYOMF_exports = {};
30
+ __export(chunk_QXIHYOMF_exports, {
31
31
  AutomationPanel_default: () => AutomationPanel_default,
32
32
  TriggerEditor: () => TriggerEditor
33
33
  });
34
- module.exports = __toCommonJS(chunk_WWU5FVAO_exports);
35
- var import_chunk_5VF5JKUN = require("./chunk-5VF5JKUN.cjs");
34
+ module.exports = __toCommonJS(chunk_QXIHYOMF_exports);
35
+ var import_chunk_EQYHOTGG = require("./chunk-EQYHOTGG.cjs");
36
36
  var import_react = __toESM(require("react"));
37
37
  var import_echo_schema = require("@dxos/echo-schema");
38
38
  var import_functions = require("@dxos/functions");
@@ -48,7 +48,7 @@ var import_echo2 = require("@dxos/react-client/echo");
48
48
  var import_react_ui2 = require("@dxos/react-ui");
49
49
  var import_react_ui_form = require("@dxos/react-ui-form");
50
50
  var TriggerEditor = ({ space, trigger, onSave, onCancel }) => {
51
- const { t } = (0, import_react_ui2.useTranslation)(import_chunk_5VF5JKUN.AUTOMATION_PLUGIN);
51
+ const { t } = (0, import_react_ui2.useTranslation)(import_chunk_EQYHOTGG.AUTOMATION_PLUGIN);
52
52
  const functions = (0, import_echo2.useQuery)(space, import_echo2.Filter.schema(import_functions2.FunctionType));
53
53
  const workflows = (0, import_echo2.useQuery)(space, import_echo2.Filter.schema(import_conductor.ComputeGraph));
54
54
  const scripts = (0, import_echo2.useQuery)(space, import_echo2.Filter.schema(import_functions2.ScriptType));
@@ -74,10 +74,10 @@ var TriggerEditor = ({ space, trigger, onSave, onCancel }) => {
74
74
  }),
75
75
  ["meta"]: (props) => {
76
76
  const meta = props.getValue();
77
- const [newMetaFieldName, setNewMetaFieldName] = (0, import_react2.useState)("");
78
- import_react2.default.useEffect(() => props.onValueChange("object", {
77
+ (0, import_react2.useEffect)(() => props.onValueChange("object", {
79
78
  ...meta
80
79
  }), []);
80
+ const [newMetaFieldName, setNewMetaFieldName] = (0, import_react2.useState)("");
81
81
  return /* @__PURE__ */ import_react2.default.createElement(import_react2.default.Fragment, null, /* @__PURE__ */ import_react2.default.createElement("div", null, props.label), [
82
82
  ...Object.keys(meta)
83
83
  ].map((key) => {
@@ -91,6 +91,7 @@ var TriggerEditor = ({ space, trigger, onSave, onCancel }) => {
91
91
  className: "flex-1"
92
92
  }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui_form.TextInput, {
93
93
  ...props,
94
+ getValue: () => props.getValue()[key],
94
95
  type: "string",
95
96
  label: key
96
97
  })), /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.IconButton, {
@@ -151,7 +152,7 @@ var getFunctionOptions = (scripts, functions) => {
151
152
  };
152
153
  var grid = "grid grid-cols-[40px_1fr_32px] min-bs-[2.5rem]";
153
154
  var AutomationPanel = ({ space, object }) => {
154
- const { t } = (0, import_react_ui.useTranslation)(import_chunk_5VF5JKUN.AUTOMATION_PLUGIN);
155
+ const { t } = (0, import_react_ui.useTranslation)(import_chunk_EQYHOTGG.AUTOMATION_PLUGIN);
155
156
  const client = (0, import_react_client.useClient)();
156
157
  const triggers = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_functions.FunctionTrigger));
157
158
  const functions = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_functions.FunctionType));
@@ -263,4 +264,4 @@ var AutomationPanel_default = AutomationPanel;
263
264
  AutomationPanel_default,
264
265
  TriggerEditor
265
266
  });
266
- //# sourceMappingURL=chunk-WWU5FVAO.cjs.map
267
+ //# sourceMappingURL=chunk-QXIHYOMF.cjs.map
@@ -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": ["import_react", "import_functions", "import_echo", "import_react_ui", "TriggerEditor", "space", "trigger", "onSave", "onCancel", "t", "useTranslation", "AUTOMATION_PLUGIN", "functions", "useQuery", "Filter", "schema", "FunctionType", "workflows", "ComputeGraph", "scripts", "ScriptType", "handleSave", "values", "React", "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", "object", "client", "useClient", "triggers", "FunctionTrigger", "setTrigger", "selected", "setSelected", "handleSelect", "_", "handleAdd", "create", "undefined", "handleDelete", "db", "remove", "assign", "add", "handleCancel", "List", "items", "isItem", "S", "is", "getId", "field", "copyAction", "getCopyAction", "Item", "item", "mx", "ghostHover", "Switch", "checked", "enabled", "onCheckedChange", "ItemTitle", "getFunctionName", "Button", "navigator", "clipboard", "writeText", "contentProvider", "translationKey", "ItemDeleteButton", "spec", "Email", "getSpace", "Webhook", "getWebhookUrl", "spaceId", "edgeUrl", "URL", "config", "runtime", "services", "edge", "url", "isSecure", "protocol", "startsWith", "toString", "shortId", "function", "slice", "functionObject"]
7
+ }
@@ -16,19 +16,19 @@ var __copyProps = (to, from, except, desc) => {
16
16
  return to;
17
17
  };
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chunk_ZS5RZ7RM_exports = {};
20
- __export(chunk_ZS5RZ7RM_exports, {
19
+ var chunk_U5Z7LFWB_exports = {};
20
+ __export(chunk_U5Z7LFWB_exports, {
21
21
  AutomationCapabilities: () => AutomationCapabilities
22
22
  });
23
- module.exports = __toCommonJS(chunk_ZS5RZ7RM_exports);
24
- var import_chunk_5VF5JKUN = require("./chunk-5VF5JKUN.cjs");
23
+ module.exports = __toCommonJS(chunk_U5Z7LFWB_exports);
24
+ var import_chunk_EQYHOTGG = require("./chunk-EQYHOTGG.cjs");
25
25
  var import_app_framework = require("@dxos/app-framework");
26
26
  var AutomationCapabilities;
27
27
  (function(AutomationCapabilities2) {
28
- AutomationCapabilities2.AiClient = (0, import_app_framework.defineCapability)(`${import_chunk_5VF5JKUN.AUTOMATION_PLUGIN}/capability/ai-client`);
28
+ AutomationCapabilities2.AiClient = (0, import_app_framework.defineCapability)(`${import_chunk_EQYHOTGG.AUTOMATION_PLUGIN}/capability/ai-client`);
29
29
  })(AutomationCapabilities || (AutomationCapabilities = {}));
30
30
  // Annotate the CommonJS export names for ESM import in node:
31
31
  0 && (module.exports = {
32
32
  AutomationCapabilities
33
33
  });
34
- //# sourceMappingURL=chunk-ZS5RZ7RM.cjs.map
34
+ //# sourceMappingURL=chunk-U5Z7LFWB.cjs.map