@dxos/plugin-assistant 0.8.2 → 0.8.3-main.7f5a14c

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 (213) hide show
  1. package/dist/lib/browser/{AssistantDialog-K6POM23O.mjs → AssistantDialog-YCPMFK7Y.mjs} +5 -4
  2. package/dist/lib/browser/BlueprintContainer-4MEK52NT.mjs +204 -0
  3. package/dist/lib/browser/BlueprintContainer-4MEK52NT.mjs.map +7 -0
  4. package/dist/lib/browser/{ChatContainer-QTO4LE2C.mjs → ChatContainer-RYFYYEWI.mjs} +5 -4
  5. package/dist/lib/browser/{TemplateContainer-AKUYL4AV.mjs → TemplateContainer-QQHVOTSI.mjs} +2 -2
  6. package/dist/lib/browser/TemplateContainer-QQHVOTSI.mjs.map +7 -0
  7. package/dist/lib/browser/{ai-client-COXVUC6V.mjs → ai-client-MTCTMJ5N.mjs} +11 -7
  8. package/dist/lib/browser/ai-client-MTCTMJ5N.mjs.map +7 -0
  9. package/dist/lib/browser/{app-graph-builder-YH4EGNBC.mjs → app-graph-builder-DBCVARVI.mjs} +20 -14
  10. package/dist/lib/browser/app-graph-builder-DBCVARVI.mjs.map +7 -0
  11. package/dist/lib/browser/{chunk-3F44MBHU.mjs → chunk-3TIEETB2.mjs} +1 -1
  12. package/dist/lib/browser/{chunk-3F44MBHU.mjs.map → chunk-3TIEETB2.mjs.map} +2 -2
  13. package/dist/lib/browser/chunk-AKYSTUBJ.mjs +16 -0
  14. package/dist/lib/browser/chunk-AKYSTUBJ.mjs.map +7 -0
  15. package/dist/lib/browser/{chunk-QTW7KVDO.mjs → chunk-DLWFPGZE.mjs} +65 -70
  16. package/dist/lib/browser/chunk-DLWFPGZE.mjs.map +7 -0
  17. package/dist/lib/browser/{chunk-USJBRB3H.mjs → chunk-WFZ4EPPI.mjs} +7 -5
  18. package/dist/lib/browser/{chunk-USJBRB3H.mjs.map → chunk-WFZ4EPPI.mjs.map} +3 -3
  19. package/dist/lib/browser/{chunk-IHEBFO5O.mjs → chunk-ZVHA24BL.mjs} +12 -11
  20. package/dist/lib/browser/chunk-ZVHA24BL.mjs.map +7 -0
  21. package/dist/lib/browser/index.mjs +37 -19
  22. package/dist/lib/browser/index.mjs.map +3 -3
  23. package/dist/lib/browser/{intent-resolver-63EAHENI.mjs → intent-resolver-ID5NOIIJ.mjs} +15 -14
  24. package/dist/lib/browser/intent-resolver-ID5NOIIJ.mjs.map +7 -0
  25. package/dist/lib/browser/meta.json +1 -1
  26. package/dist/lib/browser/{react-surface-XCV6NR75.mjs → react-surface-OD23FVUD.mjs} +26 -15
  27. package/dist/lib/browser/react-surface-OD23FVUD.mjs.map +7 -0
  28. package/dist/lib/browser/{settings-SHNQ4XXP.mjs → settings-FUYUBGSQ.mjs} +4 -4
  29. package/dist/lib/browser/settings-FUYUBGSQ.mjs.map +7 -0
  30. package/dist/lib/browser/types/index.mjs +1 -1
  31. package/dist/lib/node/{AssistantDialog-FDATKYE5.cjs → AssistantDialog-B5YKJOAF.cjs} +9 -8
  32. package/dist/lib/node/{AssistantDialog-FDATKYE5.cjs.map → AssistantDialog-B5YKJOAF.cjs.map} +1 -1
  33. package/dist/lib/node/BlueprintContainer-VD6EIWH7.cjs +229 -0
  34. package/dist/lib/node/BlueprintContainer-VD6EIWH7.cjs.map +7 -0
  35. package/dist/lib/node/{ChatContainer-5CLHJOIQ.cjs → ChatContainer-WFLTSAFA.cjs} +9 -8
  36. package/dist/lib/node/{ChatContainer-5CLHJOIQ.cjs.map → ChatContainer-WFLTSAFA.cjs.map} +1 -1
  37. package/dist/lib/node/{TemplateContainer-CTG2MB4W.cjs → TemplateContainer-JZF2DCCG.cjs} +5 -5
  38. package/dist/lib/node/TemplateContainer-JZF2DCCG.cjs.map +7 -0
  39. package/dist/lib/node/{ai-client-R2CGEYZW.cjs → ai-client-3XNIFMJX.cjs} +14 -10
  40. package/dist/lib/node/ai-client-3XNIFMJX.cjs.map +7 -0
  41. package/dist/lib/node/{app-graph-builder-PSHIOW3Q.cjs → app-graph-builder-VEPLBTML.cjs} +34 -28
  42. package/dist/lib/node/app-graph-builder-VEPLBTML.cjs.map +7 -0
  43. package/dist/lib/node/{chunk-RXPA2C2A.cjs → chunk-7TQAIKE2.cjs} +25 -24
  44. package/dist/lib/node/chunk-7TQAIKE2.cjs.map +7 -0
  45. package/dist/lib/node/chunk-BGRQNE3L.cjs +52 -0
  46. package/dist/lib/node/chunk-BGRQNE3L.cjs.map +7 -0
  47. package/dist/lib/node/{chunk-FLJWJ35M.cjs → chunk-DXBAFX6M.cjs} +13 -10
  48. package/dist/lib/node/{chunk-FLJWJ35M.cjs.map → chunk-DXBAFX6M.cjs.map} +3 -3
  49. package/dist/lib/node/{chunk-H4A42LNR.cjs → chunk-WR5L3TVB.cjs} +86 -92
  50. package/dist/lib/node/chunk-WR5L3TVB.cjs.map +7 -0
  51. package/dist/lib/node/{chunk-TS3H5OSX.cjs → chunk-ZP732NHS.cjs} +4 -4
  52. package/dist/lib/node/{chunk-TS3H5OSX.cjs.map → chunk-ZP732NHS.cjs.map} +2 -2
  53. package/dist/lib/node/index.cjs +69 -48
  54. package/dist/lib/node/index.cjs.map +3 -3
  55. package/dist/lib/node/{intent-resolver-66F7WLW6.cjs → intent-resolver-SDO4YKJK.cjs} +18 -16
  56. package/dist/lib/node/intent-resolver-SDO4YKJK.cjs.map +7 -0
  57. package/dist/lib/node/meta.json +1 -1
  58. package/dist/lib/node/{react-surface-TASAPRPQ.cjs → react-surface-FANQXIRI.cjs} +37 -27
  59. package/dist/lib/node/react-surface-FANQXIRI.cjs.map +7 -0
  60. package/dist/lib/node/{settings-ERKLO6IO.cjs → settings-PXPIPYJN.cjs} +7 -7
  61. package/dist/lib/node/settings-PXPIPYJN.cjs.map +7 -0
  62. package/dist/lib/node/types/index.cjs +14 -14
  63. package/dist/lib/node/types/index.cjs.map +1 -1
  64. package/dist/lib/node-esm/{AssistantDialog-PIMYK774.mjs → AssistantDialog-KPZZD7XC.mjs} +5 -4
  65. package/dist/lib/{browser/AssistantDialog-K6POM23O.mjs.map → node-esm/AssistantDialog-KPZZD7XC.mjs.map} +1 -1
  66. package/dist/lib/node-esm/BlueprintContainer-SVOKCRCP.mjs +205 -0
  67. package/dist/lib/node-esm/BlueprintContainer-SVOKCRCP.mjs.map +7 -0
  68. package/dist/lib/node-esm/{ChatContainer-QTC5NYE2.mjs → ChatContainer-WSMKUGS6.mjs} +5 -4
  69. package/dist/lib/{browser/ChatContainer-QTO4LE2C.mjs.map → node-esm/ChatContainer-WSMKUGS6.mjs.map} +1 -1
  70. package/dist/lib/node-esm/{TemplateContainer-IVDQ4XQG.mjs → TemplateContainer-SOEWY2ZN.mjs} +2 -2
  71. package/dist/lib/node-esm/TemplateContainer-SOEWY2ZN.mjs.map +7 -0
  72. package/dist/lib/node-esm/{ai-client-I5LXHMOZ.mjs → ai-client-YIP44I4D.mjs} +11 -7
  73. package/dist/lib/node-esm/ai-client-YIP44I4D.mjs.map +7 -0
  74. package/dist/lib/node-esm/{app-graph-builder-Z3GMMJMD.mjs → app-graph-builder-WJXDXLBQ.mjs} +20 -14
  75. package/dist/lib/node-esm/app-graph-builder-WJXDXLBQ.mjs.map +7 -0
  76. package/dist/lib/node-esm/{chunk-ZKBACPIW.mjs → chunk-24LIHQST.mjs} +12 -11
  77. package/dist/lib/node-esm/chunk-24LIHQST.mjs.map +7 -0
  78. package/dist/lib/node-esm/{chunk-QU626JMR.mjs → chunk-QFX6SFFZ.mjs} +7 -5
  79. package/dist/lib/node-esm/{chunk-QU626JMR.mjs.map → chunk-QFX6SFFZ.mjs.map} +3 -3
  80. package/dist/lib/node-esm/{chunk-SI5LOQEO.mjs → chunk-TTSMEWR6.mjs} +65 -70
  81. package/dist/lib/node-esm/chunk-TTSMEWR6.mjs.map +7 -0
  82. package/dist/lib/node-esm/{chunk-HLPGKJ7N.mjs → chunk-VXGO6Q2L.mjs} +1 -1
  83. package/dist/lib/node-esm/{chunk-HLPGKJ7N.mjs.map → chunk-VXGO6Q2L.mjs.map} +2 -2
  84. package/dist/lib/node-esm/chunk-ZKTIHNT7.mjs +18 -0
  85. package/dist/lib/node-esm/chunk-ZKTIHNT7.mjs.map +7 -0
  86. package/dist/lib/node-esm/index.mjs +37 -19
  87. package/dist/lib/node-esm/index.mjs.map +3 -3
  88. package/dist/lib/node-esm/{intent-resolver-X3PWH7KM.mjs → intent-resolver-75REJDDQ.mjs} +15 -14
  89. package/dist/lib/node-esm/intent-resolver-75REJDDQ.mjs.map +7 -0
  90. package/dist/lib/node-esm/meta.json +1 -1
  91. package/dist/lib/node-esm/{react-surface-QMIQCXUM.mjs → react-surface-NAN4SDCE.mjs} +26 -15
  92. package/dist/lib/node-esm/react-surface-NAN4SDCE.mjs.map +7 -0
  93. package/dist/lib/node-esm/{settings-IVQRZUCU.mjs → settings-JHMKX3UV.mjs} +4 -4
  94. package/dist/lib/node-esm/settings-JHMKX3UV.mjs.map +7 -0
  95. package/dist/lib/node-esm/types/index.mjs +1 -1
  96. package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
  97. package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
  98. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  99. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  101. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  102. package/dist/types/src/components/AmbientDialog/AmbientDialog.stories.d.ts.map +1 -1
  103. package/dist/types/src/components/BlueprintContainer.d.ts +9 -0
  104. package/dist/types/src/components/BlueprintContainer.d.ts.map +1 -0
  105. package/dist/types/src/components/BlueprintEditor/BlueprintEditor.d.ts +8 -3
  106. package/dist/types/src/components/BlueprintEditor/BlueprintEditor.d.ts.map +1 -1
  107. package/dist/types/src/components/Prompt/Prompt.stories.d.ts.map +1 -1
  108. package/dist/types/src/components/Prompt/PromptBar.stories.d.ts.map +1 -1
  109. package/dist/types/src/components/TemplateContainer.d.ts +2 -2
  110. package/dist/types/src/components/TemplateContainer.d.ts.map +1 -1
  111. package/dist/types/src/components/Thread/ThreadContainer.d.ts.map +1 -1
  112. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts +1 -1
  113. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
  114. package/dist/types/src/components/Thread/ThreadMessage.d.ts +2 -2
  115. package/dist/types/src/components/Thread/ThreadMessage.d.ts.map +1 -1
  116. package/dist/types/src/components/index.d.ts +4 -2
  117. package/dist/types/src/components/index.d.ts.map +1 -1
  118. package/dist/types/src/hooks/useContextProvider.d.ts.map +1 -1
  119. package/dist/types/src/hooks/useMessageQueue.d.ts +6 -6
  120. package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -1
  121. package/dist/types/src/index.d.ts +1 -0
  122. package/dist/types/src/index.d.ts.map +1 -1
  123. package/dist/types/src/parser/filter-generator.d.ts +1 -1
  124. package/dist/types/src/parser/filter-generator.d.ts.map +1 -1
  125. package/dist/types/src/stories/Prompt.stories.d.ts.map +1 -1
  126. package/dist/types/src/stories/Query.stories.d.ts.map +1 -1
  127. package/dist/types/src/stories/Research.stories.d.ts +1 -1
  128. package/dist/types/src/stories/Research.stories.d.ts.map +1 -1
  129. package/dist/types/src/stories/testing.d.ts.map +1 -1
  130. package/dist/types/src/testing/index.d.ts +1 -1
  131. package/dist/types/src/testing/index.d.ts.map +1 -1
  132. package/dist/types/src/testing/test-blueprint.d.ts +8 -0
  133. package/dist/types/src/testing/test-blueprint.d.ts.map +1 -0
  134. package/dist/types/src/tools/openapi.d.ts.map +1 -1
  135. package/dist/types/src/translations.d.ts +13 -62
  136. package/dist/types/src/translations.d.ts.map +1 -1
  137. package/dist/types/src/types/chat.d.ts +3 -3
  138. package/dist/types/src/types/chat.d.ts.map +1 -1
  139. package/dist/types/src/types/service.d.ts +139 -9
  140. package/dist/types/src/types/service.d.ts.map +1 -1
  141. package/dist/types/src/types/template.d.ts.map +1 -1
  142. package/dist/types/src/types/types.d.ts +12 -6
  143. package/dist/types/src/types/types.d.ts.map +1 -1
  144. package/package.json +70 -68
  145. package/src/AssistantPlugin.tsx +9 -9
  146. package/src/capabilities/ai-client.ts +10 -5
  147. package/src/capabilities/app-graph-builder.ts +38 -35
  148. package/src/capabilities/capabilities.ts +1 -0
  149. package/src/capabilities/intent-resolver.ts +15 -7
  150. package/src/capabilities/react-surface.tsx +27 -20
  151. package/src/capabilities/settings.ts +2 -2
  152. package/src/components/AmbientDialog/AmbientDialog.stories.tsx +1 -0
  153. package/src/components/BlueprintContainer.tsx +160 -0
  154. package/src/components/BlueprintEditor/BlueprintEditor.stories.tsx +2 -2
  155. package/src/components/BlueprintEditor/BlueprintEditor.tsx +31 -22
  156. package/src/components/Prompt/Prompt.stories.tsx +1 -0
  157. package/src/components/Prompt/PromptBar.stories.tsx +1 -0
  158. package/src/components/TemplateContainer.tsx +5 -2
  159. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +2 -2
  160. package/src/components/TemplateEditor/TemplateForm.stories.tsx +2 -2
  161. package/src/components/Thread/ThreadContainer.stories.tsx +7 -8
  162. package/src/components/Thread/ThreadContainer.tsx +2 -3
  163. package/src/components/Thread/ThreadMessage.tsx +3 -3
  164. package/src/components/index.ts +1 -0
  165. package/src/hooks/useContextProvider.ts +14 -18
  166. package/src/hooks/useMessageQueue.ts +3 -2
  167. package/src/index.ts +1 -0
  168. package/src/parser/filter-generator.test.ts +1 -1
  169. package/src/parser/filter-generator.ts +1 -1
  170. package/src/stories/Prompt.stories.tsx +1 -0
  171. package/src/stories/Query.stories.tsx +116 -50
  172. package/src/stories/Research.stories.tsx +26 -39
  173. package/src/stories/test-data.ts +9 -9
  174. package/src/stories/testing.ts +1 -5
  175. package/src/testing/index.ts +1 -1
  176. package/src/testing/{blueprint.ts → test-blueprint.ts} +28 -17
  177. package/src/testing/test-services.ts +6 -6
  178. package/src/tools/function.ts +2 -2
  179. package/src/tools/openapi.test.ts +6 -12
  180. package/src/tools/openapi.ts +5 -5
  181. package/src/translations.ts +9 -2
  182. package/src/types/chat.ts +3 -4
  183. package/src/types/service.ts +8 -4
  184. package/src/types/template.ts +4 -1
  185. package/src/types/types.ts +3 -3
  186. package/dist/lib/browser/TemplateContainer-AKUYL4AV.mjs.map +0 -7
  187. package/dist/lib/browser/ai-client-COXVUC6V.mjs.map +0 -7
  188. package/dist/lib/browser/app-graph-builder-YH4EGNBC.mjs.map +0 -7
  189. package/dist/lib/browser/chunk-IHEBFO5O.mjs.map +0 -7
  190. package/dist/lib/browser/chunk-QTW7KVDO.mjs.map +0 -7
  191. package/dist/lib/browser/intent-resolver-63EAHENI.mjs.map +0 -7
  192. package/dist/lib/browser/react-surface-XCV6NR75.mjs.map +0 -7
  193. package/dist/lib/browser/settings-SHNQ4XXP.mjs.map +0 -7
  194. package/dist/lib/node/TemplateContainer-CTG2MB4W.cjs.map +0 -7
  195. package/dist/lib/node/ai-client-R2CGEYZW.cjs.map +0 -7
  196. package/dist/lib/node/app-graph-builder-PSHIOW3Q.cjs.map +0 -7
  197. package/dist/lib/node/chunk-H4A42LNR.cjs.map +0 -7
  198. package/dist/lib/node/chunk-RXPA2C2A.cjs.map +0 -7
  199. package/dist/lib/node/intent-resolver-66F7WLW6.cjs.map +0 -7
  200. package/dist/lib/node/react-surface-TASAPRPQ.cjs.map +0 -7
  201. package/dist/lib/node/settings-ERKLO6IO.cjs.map +0 -7
  202. package/dist/lib/node-esm/TemplateContainer-IVDQ4XQG.mjs.map +0 -7
  203. package/dist/lib/node-esm/ai-client-I5LXHMOZ.mjs.map +0 -7
  204. package/dist/lib/node-esm/app-graph-builder-Z3GMMJMD.mjs.map +0 -7
  205. package/dist/lib/node-esm/chunk-SI5LOQEO.mjs.map +0 -7
  206. package/dist/lib/node-esm/chunk-ZKBACPIW.mjs.map +0 -7
  207. package/dist/lib/node-esm/intent-resolver-X3PWH7KM.mjs.map +0 -7
  208. package/dist/lib/node-esm/react-surface-QMIQCXUM.mjs.map +0 -7
  209. package/dist/lib/node-esm/settings-IVQRZUCU.mjs.map +0 -7
  210. package/dist/types/src/testing/blueprint.d.ts +0 -7
  211. package/dist/types/src/testing/blueprint.d.ts.map +0 -1
  212. /package/dist/lib/{node-esm/AssistantDialog-PIMYK774.mjs.map → browser/AssistantDialog-YCPMFK7Y.mjs.map} +0 -0
  213. /package/dist/lib/{node-esm/ChatContainer-QTC5NYE2.mjs.map → browser/ChatContainer-RYFYYEWI.mjs.map} +0 -0
@@ -16,24 +16,24 @@ 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 app_graph_builder_PSHIOW3Q_exports = {};
20
- __export(app_graph_builder_PSHIOW3Q_exports, {
19
+ var app_graph_builder_VEPLBTML_exports = {};
20
+ __export(app_graph_builder_VEPLBTML_exports, {
21
21
  default: () => app_graph_builder_default
22
22
  });
23
- module.exports = __toCommonJS(app_graph_builder_PSHIOW3Q_exports);
24
- var import_chunk_RXPA2C2A = require("./chunk-RXPA2C2A.cjs");
23
+ module.exports = __toCommonJS(app_graph_builder_VEPLBTML_exports);
24
+ var import_chunk_7TQAIKE2 = require("./chunk-7TQAIKE2.cjs");
25
25
  var import_chunk_P74TWGMG = require("./chunk-P74TWGMG.cjs");
26
26
  var import_rx_react = require("@effect-rx/rx-react");
27
27
  var import_effect = require("effect");
28
28
  var import_app_framework = require("@dxos/app-framework");
29
- var import_echo_schema = require("@dxos/echo-schema");
29
+ var import_echo = require("@dxos/echo");
30
30
  var import_invariant = require("@dxos/invariant");
31
31
  var import_plugin_client = require("@dxos/plugin-client");
32
32
  var import_types = require("@dxos/plugin-deck/types");
33
33
  var import_plugin_graph = require("@dxos/plugin-graph");
34
34
  var import_plugin_space = require("@dxos/plugin-space");
35
35
  var import_types2 = require("@dxos/plugin-space/types");
36
- var import_echo = require("@dxos/react-client/echo");
36
+ var import_echo2 = require("@dxos/react-client/echo");
37
37
  var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/capabilities/app-graph-builder.ts";
38
38
  var app_graph_builder_default = (context) => (0, import_app_framework.contributes)(import_app_framework.Capabilities.AppGraphBuilder, [
39
39
  (0, import_plugin_graph.createExtension)({
@@ -50,7 +50,7 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
50
50
  if (layout.active.length > 0) {
51
51
  const node2 = graph.getNode(layout.active[0]).pipe(import_effect.Option.getOrNull);
52
52
  if (node2) {
53
- const space = (0, import_echo.getSpace)(node2.data);
53
+ const space = (0, import_echo2.getSpace)(node2.data);
54
54
  if (space) {
55
55
  chat = await getOrCreateChat(dispatch, space);
56
56
  }
@@ -96,21 +96,27 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
96
96
  id: `${import_chunk_P74TWGMG.ASSISTANT_PLUGIN}/object-chat-companion`,
97
97
  connector: (node) => {
98
98
  let query;
99
- return import_rx_react.Rx.make((get) => (0, import_effect.pipe)(get(node), import_effect.Option.flatMap((node2) => (0, import_echo.isEchoObject)(node2.data) ? import_effect.Option.some(node2.data) : import_effect.Option.none()), import_effect.Option.flatMap((object) => {
100
- const space = (0, import_echo.getSpace)(object);
101
- return space ? import_effect.Option.some({
102
- space,
103
- object
104
- }) : import_effect.Option.none();
105
- }), import_effect.Option.map(({ space, object }) => {
99
+ return import_rx_react.Rx.make((get) => {
100
+ const nodeOption = get(node);
101
+ if (import_effect.Option.isNone(nodeOption)) {
102
+ return [];
103
+ }
104
+ const object = nodeOption.value.data;
105
+ if (!import_echo.Obj.isObject(object)) {
106
+ return [];
107
+ }
108
+ const space = (0, import_echo2.getSpace)(object);
109
+ if (!space) {
110
+ return [];
111
+ }
106
112
  if (!query) {
107
- query = space.db.query(import_echo.Query.select(import_echo.Filter.ids(object.id)).targetOf(import_chunk_RXPA2C2A.CompanionTo).source());
113
+ query = space.db.query(import_echo2.Query.select(import_echo2.Filter.ids(object.id)).targetOf(import_chunk_7TQAIKE2.CompanionTo).source());
108
114
  }
109
115
  const chat = get((0, import_plugin_space.rxFromQuery)(query))[0];
110
116
  return [
111
117
  {
112
118
  id: [
113
- (0, import_echo.fullyQualifiedId)(object),
119
+ (0, import_echo2.fullyQualifiedId)(object),
114
120
  "assistant-chat"
115
121
  ].join(import_types.ATTENDABLE_PATH_SEPARATOR),
116
122
  type: import_types.PLANK_COMPANION_TYPE,
@@ -128,16 +134,16 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
128
134
  }
129
135
  }
130
136
  ];
131
- }), import_effect.Option.getOrElse(() => [])));
137
+ });
132
138
  }
133
139
  }),
134
140
  (0, import_plugin_graph.createExtension)({
135
141
  id: `${import_chunk_P74TWGMG.ASSISTANT_PLUGIN}/root`,
136
142
  connector: (node) => {
137
143
  let query;
138
- return import_rx_react.Rx.make((get) => (0, import_effect.pipe)(get(node), import_effect.Option.flatMap((node2) => node2.type === import_types2.SPACE_TYPE && (0, import_echo.isSpace)(node2.data) ? import_effect.Option.some(node2.data) : import_effect.Option.none()), import_effect.Option.map((space) => {
144
+ return import_rx_react.Rx.make((get) => (0, import_effect.pipe)(get(node), import_effect.Option.flatMap((node2) => node2.type === import_types2.SPACE_TYPE && (0, import_echo2.isSpace)(node2.data) ? import_effect.Option.some(node2.data) : import_effect.Option.none()), import_effect.Option.map((space) => {
139
145
  if (!query) {
140
- query = space.db.query(import_echo.Query.type(import_chunk_RXPA2C2A.TemplateType));
146
+ query = space.db.query(import_echo2.Query.type(import_chunk_7TQAIKE2.TemplateType));
141
147
  }
142
148
  const templates = get((0, import_plugin_space.rxFromQuery)(query));
143
149
  return templates.length > 0 ? [
@@ -164,16 +170,16 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
164
170
  id: `${import_chunk_P74TWGMG.ASSISTANT_PLUGIN}/templates`,
165
171
  connector: (node) => {
166
172
  let query;
167
- return import_rx_react.Rx.make((get) => (0, import_effect.pipe)(get(node), import_effect.Option.flatMap((node2) => node2.id === `${import_chunk_P74TWGMG.ASSISTANT_PLUGIN}/templates` && (0, import_echo.isSpace)(node2.properties.space) ? import_effect.Option.some(node2.properties.space) : import_effect.Option.none()), import_effect.Option.map((space) => {
173
+ return import_rx_react.Rx.make((get) => (0, import_effect.pipe)(get(node), import_effect.Option.flatMap((node2) => node2.id === `${import_chunk_P74TWGMG.ASSISTANT_PLUGIN}/templates` && (0, import_echo2.isSpace)(node2.properties.space) ? import_effect.Option.some(node2.properties.space) : import_effect.Option.none()), import_effect.Option.map((space) => {
168
174
  if (!query) {
169
- query = space.db.query(import_echo.Query.type(import_chunk_RXPA2C2A.TemplateType));
175
+ query = space.db.query(import_echo2.Query.type(import_chunk_7TQAIKE2.TemplateType));
170
176
  }
171
177
  return get((0, import_plugin_space.rxFromQuery)(query)).toSorted((a, b) => {
172
178
  const nameA = a.name ?? "";
173
179
  const nameB = b.name ?? "";
174
180
  return nameA.localeCompare(nameB);
175
181
  }).map((template) => ({
176
- id: (0, import_echo.fullyQualifiedId)(template),
182
+ id: (0, import_echo2.fullyQualifiedId)(template),
177
183
  type: `${import_chunk_P74TWGMG.ASSISTANT_PLUGIN}/template`,
178
184
  data: template,
179
185
  properties: {
@@ -191,19 +197,19 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
191
197
  })
192
198
  ]);
193
199
  var getOrCreateChat = async (dispatch, space) => {
194
- const { objects } = await space.db.query(import_echo.Filter.type(import_chunk_RXPA2C2A.AIChatType)).run();
200
+ const { objects } = await space.db.query(import_echo2.Filter.type(import_chunk_7TQAIKE2.AIChatType)).run();
195
201
  if (objects.length > 0) {
196
202
  return objects[objects.length - 1];
197
203
  }
198
- const { data } = await dispatch((0, import_app_framework.createIntent)(import_chunk_RXPA2C2A.AssistantAction.CreateChat, {
204
+ const { data } = await dispatch((0, import_app_framework.createIntent)(import_chunk_7TQAIKE2.AssistantAction.CreateChat, {
199
205
  space
200
206
  }));
201
- (0, import_invariant.invariant)((0, import_echo_schema.isInstanceOf)(import_chunk_RXPA2C2A.AIChatType, data?.object), void 0, {
207
+ (0, import_invariant.invariant)(import_echo.Obj.instanceOf(import_chunk_7TQAIKE2.AIChatType, data?.object), void 0, {
202
208
  F: __dxlog_file,
203
- L: 230,
209
+ L: 233,
204
210
  S: void 0,
205
211
  A: [
206
- "isInstanceOf(AIChatType, data?.object)",
212
+ "Obj.instanceOf(AIChatType, data?.object)",
207
213
  ""
208
214
  ]
209
215
  });
@@ -213,4 +219,4 @@ var getOrCreateChat = async (dispatch, space) => {
213
219
  }));
214
220
  return data.object;
215
221
  };
216
- //# sourceMappingURL=app-graph-builder-PSHIOW3Q.cjs.map
222
+ //# sourceMappingURL=app-graph-builder-VEPLBTML.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Rx } from '@effect-rx/rx-react';\nimport { Option, pipe } from 'effect';\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n LayoutAction,\n type PromiseIntentDispatcher,\n type PluginContext,\n} from '@dxos/app-framework';\nimport { Obj } from '@dxos/echo';\nimport { invariant } from '@dxos/invariant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from '@dxos/plugin-deck/types';\nimport { createExtension, ROOT_ID } from '@dxos/plugin-graph';\nimport { rxFromQuery } from '@dxos/plugin-space';\nimport { SPACE_TYPE, SpaceAction } from '@dxos/plugin-space/types';\nimport {\n type Space,\n Filter,\n Query,\n type QueryResult,\n fullyQualifiedId,\n getSpace,\n isSpace,\n} from '@dxos/react-client/echo';\n\nimport { ASSISTANT_DIALOG, ASSISTANT_PLUGIN } from '../meta';\nimport { AIChatType, AssistantAction, CompanionTo, TemplateType } from '../types';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${ASSISTANT_PLUGIN}/assistant`,\n actions: (node) =>\n Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),\n Option.map(() => [\n {\n id: `${LayoutAction.UpdateDialog._tag}/assistant/open`,\n data: async () => {\n const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n const client = context.getCapability(ClientCapabilities.Client);\n const layout = context.getCapability(Capabilities.Layout);\n const { graph } = context.getCapability(Capabilities.AppGraph);\n\n // TODO(burdon): Get space from workspace.\n // TODO(burdon): If need to create chat, then add to dispatch stack below.\n let chat: AIChatType | undefined;\n if (layout.active.length > 0) {\n const node = graph.getNode(layout.active[0]).pipe(Option.getOrNull);\n if (node) {\n const space = getSpace(node.data);\n if (space) {\n chat = await getOrCreateChat(dispatch, space);\n }\n }\n } else {\n const space = client.spaces.default;\n chat = await getOrCreateChat(dispatch, space);\n }\n\n if (!chat) {\n return;\n }\n\n await dispatch(\n createIntent(LayoutAction.UpdateDialog, {\n part: 'dialog',\n subject: ASSISTANT_DIALOG,\n options: {\n state: true,\n blockAlign: 'end',\n props: {\n chat,\n },\n },\n }),\n );\n },\n properties: {\n label: ['open assistant label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--sparkle--regular',\n disposition: 'pin-end',\n position: 'hoist',\n keyBinding: {\n macos: 'shift+meta+k',\n windows: 'shift+ctrl+k',\n },\n },\n },\n ]),\n Option.getOrElse(() => []),\n ),\n ),\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/object-chat-companion`,\n connector: (node) => {\n let query: QueryResult<AIChatType> | undefined;\n return Rx.make((get) => {\n const nodeOption = get(node);\n if (Option.isNone(nodeOption)) {\n return [];\n }\n\n const object = nodeOption.value.data;\n if (!Obj.isObject(object)) {\n return [];\n }\n\n const space = getSpace(object);\n if (!space) {\n return [];\n }\n\n if (!query) {\n query = space.db.query(Query.select(Filter.ids(object.id)).targetOf(CompanionTo).source());\n }\n\n const chat = get(rxFromQuery(query))[0];\n return [\n {\n id: [fullyQualifiedId(object), 'assistant-chat'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: chat ?? 'assistant-chat',\n properties: {\n label: ['assistant chat label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--sparkle--regular',\n position: 'hoist',\n disposition: 'hidden',\n },\n },\n ];\n });\n },\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/root`,\n connector: (node) => {\n let query: QueryResult<TemplateType> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.type === SPACE_TYPE && isSpace(node.data) ? Option.some(node.data) : Option.none(),\n ),\n Option.map((space) => {\n if (!query) {\n query = space.db.query(Query.type(TemplateType));\n }\n\n const templates = get(rxFromQuery(query));\n return templates.length > 0\n ? [\n {\n id: `${ASSISTANT_PLUGIN}/templates`,\n type: `${ASSISTANT_PLUGIN}/templates`,\n data: null,\n properties: {\n label: ['templates label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--file-code--regular',\n space,\n },\n },\n ]\n : [];\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/templates`,\n connector: (node) => {\n let query: QueryResult<TemplateType> | undefined;\n return Rx.make((get) =>\n pipe(\n get(node),\n Option.flatMap((node) =>\n node.id === `${ASSISTANT_PLUGIN}/templates` && isSpace(node.properties.space)\n ? Option.some(node.properties.space)\n : Option.none(),\n ),\n Option.map((space) => {\n if (!query) {\n query = space.db.query(Query.type(TemplateType));\n }\n return get(rxFromQuery(query))\n .toSorted((a, b) => {\n const nameA = a.name ?? '';\n const nameB = b.name ?? '';\n return nameA.localeCompare(nameB);\n })\n .map((template) => ({\n id: fullyQualifiedId(template),\n type: `${ASSISTANT_PLUGIN}/template`,\n data: template,\n properties: {\n label: template.name ?? ['object placeholder', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--file-code--regular',\n },\n }));\n }),\n Option.getOrElse(() => []),\n ),\n );\n },\n }),\n ]);\n\n// TODO(burdon): Factor out.\nconst getOrCreateChat = async (dispatch: PromiseIntentDispatcher, space: Space): Promise<AIChatType | undefined> => {\n const { objects } = await space.db.query(Filter.type(AIChatType)).run();\n // console.log('objects', JSON.stringify(objects, null, 2));\n if (objects.length > 0) {\n // TODO(burdon): Is this the most recent?\n return objects[objects.length - 1];\n }\n\n const { data } = await dispatch(createIntent(AssistantAction.CreateChat, { space }));\n invariant(Obj.instanceOf(AIChatType, data?.object));\n await dispatch(createIntent(SpaceAction.AddObject, { target: space, object: data.object }));\n return data.object;\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["import_types", "import_echo", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "ASSISTANT_PLUGIN", "actions", "node", "Rx", "make", "get", "pipe", "Option", "flatMap", "ROOT_ID", "some", "none", "map", "LayoutAction", "UpdateDialog", "_tag", "data", "dispatchPromise", "dispatch", "getCapability", "IntentDispatcher", "client", "ClientCapabilities", "Client", "layout", "Layout", "graph", "AppGraph", "chat", "active", "length", "getNode", "getOrNull", "space", "getSpace", "getOrCreateChat", "spaces", "default", "createIntent", "part", "subject", "ASSISTANT_DIALOG", "options", "state", "blockAlign", "props", "properties", "label", "ns", "icon", "disposition", "position", "keyBinding", "macos", "windows", "getOrElse", "connector", "query", "nodeOption", "isNone", "object", "value", "Obj", "isObject", "db", "Query", "select", "Filter", "ids", "targetOf", "CompanionTo", "source", "rxFromQuery", "fullyQualifiedId", "join", "ATTENDABLE_PATH_SEPARATOR", "type", "PLANK_COMPANION_TYPE", "SPACE_TYPE", "isSpace", "TemplateType", "templates", "toSorted", "a", "b", "nameA", "name", "nameB", "localeCompare", "template", "objects", "AIChatType", "run", "AssistantAction", "CreateChat", "invariant", "instanceOf", "SpaceAction", "AddObject", "target"]
7
+ }
@@ -16,8 +16,8 @@ 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_RXPA2C2A_exports = {};
20
- __export(chunk_RXPA2C2A_exports, {
19
+ var chunk_7TQAIKE2_exports = {};
20
+ __export(chunk_7TQAIKE2_exports, {
21
21
  AIChatType: () => AIChatType,
22
22
  ApiAuthorization: () => ApiAuthorization,
23
23
  AssistantAction: () => AssistantAction,
@@ -32,35 +32,36 @@ __export(chunk_RXPA2C2A_exports, {
32
32
  TemplateType: () => TemplateType,
33
33
  categoryIcons: () => categoryIcons
34
34
  });
35
- module.exports = __toCommonJS(chunk_RXPA2C2A_exports);
35
+ module.exports = __toCommonJS(chunk_7TQAIKE2_exports);
36
36
  var import_chunk_P74TWGMG = require("./chunk-P74TWGMG.cjs");
37
37
  var import_effect = require("effect");
38
- var import_echo = require("@dxos/echo");
39
- var import_echo_schema = require("@dxos/echo-schema");
38
+ var import_echo = require("@dxos/client/echo");
39
+ var import_echo2 = require("@dxos/echo");
40
40
  var import_effect2 = require("effect");
41
41
  var import_conductor = require("@dxos/conductor");
42
- var import_echo_schema2 = require("@dxos/echo-schema");
42
+ var import_echo3 = require("@dxos/echo");
43
+ var import_echo_schema = require("@dxos/echo-schema");
43
44
  var import_functions = require("@dxos/functions");
44
45
  var import_effect3 = require("effect");
45
- var import_echo_schema3 = require("@dxos/echo-schema");
46
+ var import_echo_schema2 = require("@dxos/echo-schema");
46
47
  var import_effect4 = require("effect");
47
- var import_echo2 = require("@dxos/react-client/echo");
48
+ var import_assistant = require("@dxos/assistant");
49
+ var import_echo4 = require("@dxos/react-client/echo");
48
50
  var AIChatType = import_effect.Schema.Struct({
49
- id: import_echo.Type.ObjectId,
51
+ id: import_echo2.Type.ObjectId,
50
52
  name: import_effect.Schema.optional(import_effect.Schema.String),
51
- // TODO(wittjosiah): Should be a ref to a Queue.
52
- queue: (0, import_echo_schema.Ref)(import_echo_schema.Expando)
53
- }).pipe(import_echo.Type.Obj({
53
+ queue: import_echo2.Type.Ref(import_echo.Queue)
54
+ }).pipe(import_echo2.Type.Obj({
54
55
  typename: "dxos.org/type/AIChat",
55
56
  version: "0.2.0"
56
57
  }));
57
58
  var CompanionTo = import_effect.Schema.Struct({
58
- id: import_echo.Type.ObjectId
59
- }).pipe(import_echo.Type.Relation({
59
+ id: import_echo2.Type.ObjectId
60
+ }).pipe(import_echo2.Type.Relation({
60
61
  typename: "dxos.org/relation/CompanionTo",
61
62
  version: "0.1.0",
62
63
  source: AIChatType,
63
- target: import_echo_schema.Expando
64
+ target: import_echo2.Type.Expando
64
65
  }));
65
66
  var ApiAuthorizationKey = import_effect2.Schema.Struct({
66
67
  type: import_effect2.Schema.Literal("api-key"),
@@ -82,11 +83,11 @@ var ApiAuthorizationOauth = import_effect2.Schema.Struct({
82
83
  var ApiAuthorization = import_effect2.Schema.Union(ApiAuthorizationKey, ApiAuthorizationOauth);
83
84
  var ServiceInterfaceFunction = import_effect2.Schema.Struct({
84
85
  kind: import_effect2.Schema.Literal("function"),
85
- fn: (0, import_echo_schema2.Ref)(import_functions.FunctionType)
86
+ fn: import_echo3.Type.Ref(import_functions.FunctionType)
86
87
  });
87
88
  var ServiceInterfaceWorkflow = import_effect2.Schema.Struct({
88
89
  kind: import_effect2.Schema.Literal("workflow"),
89
- workflow: (0, import_echo_schema2.Ref)(import_conductor.ComputeGraph)
90
+ workflow: import_echo3.Type.Ref(import_conductor.ComputeGraph)
90
91
  });
91
92
  var ServiceInterfaceApi = import_effect2.Schema.Struct({
92
93
  kind: import_effect2.Schema.Literal("api"),
@@ -104,7 +105,7 @@ var ServiceInterfaceApi = import_effect2.Schema.Struct({
104
105
  authorization: import_effect2.Schema.optional(ApiAuthorization)
105
106
  });
106
107
  var ServiceInterface = import_effect2.Schema.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);
107
- var ServiceType = class extends (0, import_echo_schema2.TypedObject)({
108
+ var ServiceType = class extends (0, import_echo_schema.TypedObject)({
108
109
  typename: "dxos.org/type/ServiceType",
109
110
  version: "0.1.0"
110
111
  })({
@@ -163,7 +164,7 @@ var TemplateKindSchema = import_effect3.Schema.Union(import_effect3.Schema.Struc
163
164
  }), import_effect3.Schema.Struct({
164
165
  include: import_effect3.Schema.Literal("manual")
165
166
  }));
166
- var TemplateType = class extends (0, import_echo_schema3.TypedObject)({
167
+ var TemplateType = class extends (0, import_echo_schema2.TypedObject)({
167
168
  typename: "dxos.org/type/Template",
168
169
  version: "0.1.0"
169
170
  })({
@@ -178,7 +179,7 @@ var TemplateType = class extends (0, import_echo_schema3.TypedObject)({
178
179
  const ASSISTANT_ACTION = `${import_chunk_P74TWGMG.ASSISTANT_PLUGIN}/action`;
179
180
  class CreateChat extends import_effect4.Schema.TaggedClass()(`${ASSISTANT_ACTION}/create-chat`, {
180
181
  input: import_effect4.Schema.Struct({
181
- space: import_echo2.SpaceSchema,
182
+ space: import_echo4.SpaceSchema,
182
183
  name: import_effect4.Schema.optional(import_effect4.Schema.String)
183
184
  }),
184
185
  output: import_effect4.Schema.Struct({
@@ -187,16 +188,16 @@ var TemplateType = class extends (0, import_echo_schema3.TypedObject)({
187
188
  }) {
188
189
  }
189
190
  AssistantAction2.CreateChat = CreateChat;
190
- class CreateTemplate extends import_effect4.Schema.TaggedClass()(`${ASSISTANT_ACTION}/create-template`, {
191
+ class CreateBlueprint extends import_effect4.Schema.TaggedClass()(`${ASSISTANT_ACTION}/create-blueprint`, {
191
192
  input: import_effect4.Schema.Struct({
192
193
  name: import_effect4.Schema.optional(import_effect4.Schema.String)
193
194
  }),
194
195
  output: import_effect4.Schema.Struct({
195
- object: TemplateType
196
+ object: import_assistant.Blueprint
196
197
  })
197
198
  }) {
198
199
  }
199
- AssistantAction2.CreateTemplate = CreateTemplate;
200
+ AssistantAction2.CreateBlueprint = CreateBlueprint;
200
201
  })(AssistantAction || (AssistantAction = {}));
201
202
  var LLM_PROVIDERS = [
202
203
  "edge",
@@ -227,4 +228,4 @@ var AssistantAction;
227
228
  TemplateType,
228
229
  categoryIcons
229
230
  });
230
- //# sourceMappingURL=chunk-RXPA2C2A.cjs.map
231
+ //# sourceMappingURL=chunk-7TQAIKE2.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/types/chat.ts", "../../../src/types/service.ts", "../../../src/types/template.ts", "../../../src/types/types.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Queue } from '@dxos/client/echo';\nimport { Type } from '@dxos/echo';\n\nexport const AIChatType = Schema.Struct({\n id: Type.ObjectId,\n name: Schema.optional(Schema.String),\n queue: Type.Ref(Queue),\n}).pipe(\n Type.Obj({\n typename: 'dxos.org/type/AIChat',\n version: '0.2.0',\n }),\n);\nexport interface AIChatType extends Schema.Schema.Type<typeof AIChatType> {}\n\nexport const CompanionTo = Schema.Struct({\n id: Type.ObjectId,\n}).pipe(\n Type.Relation({\n typename: 'dxos.org/relation/CompanionTo',\n version: '0.1.0',\n source: AIChatType,\n target: Type.Expando,\n }),\n);\nexport interface CompanionTo extends Schema.Schema.Type<typeof CompanionTo> {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { ComputeGraph } from '@dxos/conductor';\nimport { Type } from '@dxos/echo';\nimport { TypedObject } from '@dxos/echo-schema';\nimport { FunctionType } from '@dxos/functions';\n\nconst ApiAuthorizationKey = Schema.Struct({\n type: Schema.Literal('api-key'),\n key: Schema.String,\n placement: Schema.Union(\n Schema.Struct({\n type: Schema.Literal('authorization-header'),\n }),\n Schema.Struct({\n type: Schema.Literal('query'),\n name: Schema.String,\n }),\n ),\n});\n\nconst ApiAuthorizationOauth = Schema.Struct({\n type: Schema.Literal('oauth'),\n clientId: Schema.String,\n clientSecret: Schema.String,\n tokenUrl: Schema.String,\n grantType: Schema.String,\n});\n\nexport const ApiAuthorization = Schema.Union(ApiAuthorizationKey, ApiAuthorizationOauth);\nexport type ApiAuthorization = Schema.Schema.Type<typeof ApiAuthorization>;\n\nconst ServiceInterfaceFunction = Schema.Struct({\n kind: Schema.Literal('function'),\n fn: Type.Ref(FunctionType),\n});\n\nconst ServiceInterfaceWorkflow = Schema.Struct({\n kind: Schema.Literal('workflow'),\n workflow: Type.Ref(ComputeGraph),\n});\n\nconst ServiceInterfaceApi = Schema.Struct({\n kind: Schema.Literal('api'),\n\n /**\n * URL to fetch the openapi schema.\n */\n schemaUrl: Schema.optional(Schema.String),\n\n /**\n * Inlined openapi schema.\n */\n schema: Schema.optional(Schema.Any),\n\n /**\n * Authorization configuration if required.\n */\n authorization: Schema.optional(ApiAuthorization),\n});\n\nconst ServiceInterface = Schema.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);\nexport type ServiceInterface = Schema.Schema.Type<typeof ServiceInterface>;\n\nexport class ServiceType extends TypedObject({\n typename: 'dxos.org/type/ServiceType',\n version: '0.1.0',\n})({\n serviceId: Schema.String,\n name: Schema.optional(Schema.String),\n description: Schema.optional(Schema.String),\n category: Schema.optional(Schema.String),\n enabled: Schema.optional(Schema.Boolean),\n\n /**\n * Entries exposed: functions, workflows, and APIs.\n */\n interfaces: Schema.optional(Schema.Array(ServiceInterface)),\n}) {}\n\n//\n// Service Registry\n//\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 { Schema } from 'effect';\n\nimport { TypedObject } from '@dxos/echo-schema';\n\n// TODO(burdon): Change to Schema.Literal (and discriminated union).\nexport enum TemplateInputType {\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 TemplateInputSchema = Schema.mutable(\n Schema.Struct({\n name: Schema.String,\n type: Schema.optional(Schema.Enums(TemplateInputType)),\n value: Schema.optional(Schema.String),\n }),\n);\n\nexport type TemplateInput = Schema.Schema.Type<typeof TemplateInputSchema>;\n\nexport const TemplateKinds = ['always', 'schema-matching', 'automatically', 'manual'] as const;\nexport type TemplateKind = (typeof TemplateKinds)[number];\n\nexport const TemplateKindSchema = Schema.Union(\n Schema.Struct({\n include: Schema.Literal('always'),\n }),\n Schema.Struct({\n include: Schema.Literal('schema-matching'),\n typename: Schema.String,\n }),\n Schema.Struct({\n include: Schema.Literal('automatically'),\n description: Schema.String,\n }),\n Schema.Struct({\n include: Schema.Literal('manual'),\n }),\n);\n\nexport type TemplateKindType = Schema.Schema.Type<typeof TemplateKindSchema>;\nexport class TemplateType extends TypedObject({\n typename: 'dxos.org/type/Template',\n version: '0.1.0',\n})({\n name: Schema.optional(Schema.String),\n kind: Schema.mutable(TemplateKindSchema),\n source: Schema.String,\n inputs: Schema.optional(Schema.mutable(Schema.Array(TemplateInputSchema))),\n command: Schema.optional(Schema.String),\n}) {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Schema } from 'effect';\n\nimport { Blueprint } from '@dxos/assistant';\nimport { SpaceSchema } from '@dxos/react-client/echo';\n\nimport { AIChatType } from './chat';\nimport { ASSISTANT_PLUGIN } from '../meta';\n\nexport namespace AssistantAction {\n const ASSISTANT_ACTION = `${ASSISTANT_PLUGIN}/action`;\n\n export class CreateChat extends Schema.TaggedClass<CreateChat>()(`${ASSISTANT_ACTION}/create-chat`, {\n input: Schema.Struct({\n space: SpaceSchema,\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: AIChatType,\n }),\n }) {}\n\n export class CreateBlueprint extends Schema.TaggedClass<CreateBlueprint>()(`${ASSISTANT_ACTION}/create-blueprint`, {\n input: Schema.Struct({\n name: Schema.optional(Schema.String),\n }),\n output: Schema.Struct({\n object: Blueprint,\n }),\n }) {}\n}\n\nexport const LLM_PROVIDERS = ['edge', 'ollama', 'lmstudio'] as const;\n\nexport const AssistantSettingsSchema = Schema.mutable(\n Schema.Struct({\n llmProvider: Schema.optional(Schema.Literal(...LLM_PROVIDERS)),\n edgeModel: Schema.optional(Schema.String),\n ollamaModel: Schema.optional(Schema.String),\n lmstudioModel: Schema.optional(Schema.String),\n customPrompts: Schema.optional(Schema.Boolean),\n }),\n);\n\nexport type AssistantSettingsProps = Schema.Schema.Type<typeof AssistantSettingsSchema>;\n"],
5
+ "mappings": "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",
6
+ "names": ["import_echo", "import_effect", "import_echo_schema", "AIChatType", "Schema", "Struct", "id", "Type", "ObjectId", "name", "optional", "String", "queue", "Ref", "Queue", "pipe", "Obj", "typename", "version", "CompanionTo", "Relation", "source", "target", "Expando", "ApiAuthorizationKey", "type", "Literal", "key", "placement", "Union", "ApiAuthorizationOauth", "clientId", "clientSecret", "tokenUrl", "grantType", "ApiAuthorization", "ServiceInterfaceFunction", "kind", "fn", "FunctionType", "ServiceInterfaceWorkflow", "workflow", "ComputeGraph", "ServiceInterfaceApi", "schemaUrl", "schema", "Any", "authorization", "ServiceInterface", "ServiceType", "TypedObject", "serviceId", "description", "category", "enabled", "Boolean", "interfaces", "Array", "categoryIcons", "finance", "health", "geolocation", "education", "entertainment", "shopping", "travel", "utilities", "weather", "TemplateInputType", "TemplateInputSchema", "mutable", "Enums", "value", "TemplateKinds", "TemplateKindSchema", "include", "TemplateType", "inputs", "command", "AssistantAction", "ASSISTANT_ACTION", "ASSISTANT_PLUGIN", "CreateChat", "TaggedClass", "input", "space", "SpaceSchema", "output", "object", "CreateBlueprint", "Blueprint", "LLM_PROVIDERS", "AssistantSettingsSchema", "llmProvider", "edgeModel", "ollamaModel", "lmstudioModel", "customPrompts"]
7
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var chunk_BGRQNE3L_exports = {};
30
+ __export(chunk_BGRQNE3L_exports, {
31
+ AiClient: () => AiClient,
32
+ AppGraphBuilder: () => AppGraphBuilder,
33
+ IntentResolver: () => IntentResolver,
34
+ ReactSurface: () => ReactSurface,
35
+ Settings: () => Settings
36
+ });
37
+ module.exports = __toCommonJS(chunk_BGRQNE3L_exports);
38
+ var import_app_framework = require("@dxos/app-framework");
39
+ var AiClient = (0, import_app_framework.lazy)(() => import("./ai-client-3XNIFMJX.cjs"));
40
+ var AppGraphBuilder = (0, import_app_framework.lazy)(() => import("./app-graph-builder-VEPLBTML.cjs"));
41
+ var IntentResolver = (0, import_app_framework.lazy)(() => import("./intent-resolver-SDO4YKJK.cjs"));
42
+ var ReactSurface = (0, import_app_framework.lazy)(() => import("./react-surface-FANQXIRI.cjs"));
43
+ var Settings = (0, import_app_framework.lazy)(() => import("./settings-PXPIPYJN.cjs"));
44
+ // Annotate the CommonJS export names for ESM import in node:
45
+ 0 && (module.exports = {
46
+ AiClient,
47
+ AppGraphBuilder,
48
+ IntentResolver,
49
+ ReactSurface,
50
+ Settings
51
+ });
52
+ //# sourceMappingURL=chunk-BGRQNE3L.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/capabilities/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AiClient = lazy(() => import('./ai-client'));\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\nexport const Settings = lazy(() => import('./settings'));\n\nexport * from './capabilities';\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,2BAAqB;AAEd,IAAMA,eAAWC,2BAAK,MAAM,OAAO,0BAAA,CAAA;AACnC,IAAMC,sBAAkBD,2BAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAME,qBAAiBF,2BAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAMG,mBAAeH,2BAAK,MAAM,OAAO,8BAAA,CAAA;AACvC,IAAMI,eAAWJ,2BAAK,MAAM,OAAO,yBAAA,CAAA;",
6
+ "names": ["AiClient", "lazy", "AppGraphBuilder", "IntentResolver", "ReactSurface", "Settings"]
7
+ }
@@ -26,16 +26,17 @@ 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_FLJWJ35M_exports = {};
30
- __export(chunk_FLJWJ35M_exports, {
29
+ var chunk_DXBAFX6M_exports = {};
30
+ __export(chunk_DXBAFX6M_exports, {
31
31
  AssistantDialog: () => AssistantDialog,
32
32
  AssistantSettings: () => AssistantSettings,
33
+ BlueprintContainer: () => BlueprintContainer,
33
34
  ChatContainer: () => ChatContainer,
34
35
  PromptSettings: () => PromptSettings,
35
36
  TemplateContainer: () => TemplateContainer
36
37
  });
37
- module.exports = __toCommonJS(chunk_FLJWJ35M_exports);
38
- var import_chunk_RXPA2C2A = require("./chunk-RXPA2C2A.cjs");
38
+ module.exports = __toCommonJS(chunk_DXBAFX6M_exports);
39
+ var import_chunk_7TQAIKE2 = require("./chunk-7TQAIKE2.cjs");
39
40
  var import_chunk_P74TWGMG = require("./chunk-P74TWGMG.cjs");
40
41
  var import_tracking = require("@preact-signals/safe-react/tracking");
41
42
  var import_react = __toESM(require("react"));
@@ -74,7 +75,7 @@ var AssistantSettings = ({ settings }) => {
74
75
  placeholder: t("settings llm provider label")
75
76
  }), /* @__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, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Option, {
76
77
  value: DEFAULT_VALUE
77
- }, t("settings default label")), import_chunk_RXPA2C2A.LLM_PROVIDERS.map((model) => /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Option, {
78
+ }, t("settings default label")), import_chunk_7TQAIKE2.LLM_PROVIDERS.map((model) => /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Option, {
78
79
  key: model,
79
80
  value: model
80
81
  }, LLM_PROVIDER_LABELS[model]))))))), /* @__PURE__ */ import_react.default.createElement(import_react_ui_form.DeprecatedFormInput, {
@@ -151,7 +152,7 @@ var PromptSettings = ({ template }) => {
151
152
  onValueChange: handleKindChange
152
153
  }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Toolbar.Button, {
153
154
  asChild: true
154
- }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.TriggerButton, null)), /* @__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, import_chunk_RXPA2C2A.TemplateKinds.map((kind) => /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.Option, {
155
+ }, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.TriggerButton, null)), /* @__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, import_chunk_7TQAIKE2.TemplateKinds.map((kind) => /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Select.Option, {
155
156
  key: kind,
156
157
  value: kind
157
158
  }, kind)))))), template.kind.include === "schema-matching" && /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Input.Root, null, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Input.TextInput, {
@@ -167,15 +168,17 @@ var PromptSettings = ({ template }) => {
167
168
  _effect.f();
168
169
  }
169
170
  };
170
- var AssistantDialog = (0, import_react3.lazy)(() => import("./AssistantDialog-FDATKYE5.cjs"));
171
- var ChatContainer = (0, import_react3.lazy)(() => import("./ChatContainer-5CLHJOIQ.cjs"));
172
- var TemplateContainer = (0, import_react3.lazy)(() => import("./TemplateContainer-CTG2MB4W.cjs"));
171
+ var AssistantDialog = (0, import_react3.lazy)(() => import("./AssistantDialog-B5YKJOAF.cjs"));
172
+ var BlueprintContainer = (0, import_react3.lazy)(() => import("./BlueprintContainer-VD6EIWH7.cjs"));
173
+ var ChatContainer = (0, import_react3.lazy)(() => import("./ChatContainer-WFLTSAFA.cjs"));
174
+ var TemplateContainer = (0, import_react3.lazy)(() => import("./TemplateContainer-JZF2DCCG.cjs"));
173
175
  // Annotate the CommonJS export names for ESM import in node:
174
176
  0 && (module.exports = {
175
177
  AssistantDialog,
176
178
  AssistantSettings,
179
+ BlueprintContainer,
177
180
  ChatContainer,
178
181
  PromptSettings,
179
182
  TemplateContainer
180
183
  });
181
- //# sourceMappingURL=chunk-FLJWJ35M.cjs.map
184
+ //# sourceMappingURL=chunk-DXBAFX6M.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/components/AssistantSettings/AssistantSettings.tsx", "../../../src/components/PromptSettings.tsx", "../../../src/components/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DEFAULT_EDGE_MODELS, DEFAULT_OLLAMA_MODELS } from '@dxos/ai';\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { ASSISTANT_PLUGIN } from '../../meta';\nimport { LLM_PROVIDERS, type AssistantSettingsProps } from '../../types';\n\n// TODO(burdon): Factor out default Selector.\nconst DEFAULT_VALUE = '__default';\n\nconst LLM_PROVIDER_LABELS = {\n edge: 'DXOS',\n ollama: 'Ollama',\n lmstudio: 'LM Studio',\n} as const;\n\nexport const AssistantSettings = ({ settings }: { settings: AssistantSettingsProps }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput label={t('settings custom prompts label')}>\n <Input.Switch\n checked={!!settings.customPrompts}\n onCheckedChange={(checked) => (settings.customPrompts = checked)}\n />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings llm provider label')}>\n <Select.Root\n value={settings.llmProvider ?? 'edge'}\n onValueChange={(value) => {\n settings.llmProvider = value === DEFAULT_VALUE ? undefined : (value as any);\n }}\n >\n <Select.TriggerButton placeholder={t('settings llm provider label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {LLM_PROVIDERS.map((model) => (\n <Select.Option key={model} value={model}>\n {LLM_PROVIDER_LABELS[model]}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings edge llm model label')}>\n <Select.Root\n value={settings.edgeModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n settings.edgeModel = value === DEFAULT_VALUE ? undefined : value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_EDGE_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings ollama llm model label')}>\n <Select.Root\n value={settings.ollamaModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n settings.ollamaModel = value === DEFAULT_VALUE ? undefined : value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_OLLAMA_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Match, type Schema } from 'effect';\nimport React, { type ChangeEvent, useCallback } from 'react';\n\nimport { debounce } from '@dxos/async';\nimport { Input, Select, Toolbar, useTranslation } from '@dxos/react-ui';\n\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { TemplateKinds, type TemplateType, type TemplateKindSchema } from '../types';\n\nexport const PromptSettings = ({ template }: { template: TemplateType }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n\n const handleKindChange = useCallback(\n (value: string) => {\n const kind = Match.type<string>().pipe(\n Match.withReturnType<Schema.Schema.Type<typeof TemplateKindSchema>>(),\n Match.when('always', () => ({ include: 'always' })),\n Match.when('schema-matching', () => ({ include: 'schema-matching', typename: '' })),\n Match.when('automatically', () => ({ include: 'automatically', description: '' })),\n Match.orElse(() => ({ include: 'manual' })),\n )(value);\n\n template.kind = kind;\n },\n [template],\n );\n\n const handleTypenameChange = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (template.kind.include === 'schema-matching') {\n template.kind.typename = event.target.value;\n }\n }, 300),\n [template.kind.include],\n );\n\n const handleDescriptionChange = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (template.kind.include === 'automatically') {\n template.kind.description = event.target.value;\n }\n }, 300),\n [template.kind.include],\n );\n\n return (\n <div className='p-2 flex flex-col gap-4'>\n <h2>{t('prompt rules label')}</h2>\n <Toolbar.Root>\n <Select.Root value={template.kind.include} onValueChange={handleKindChange}>\n <Toolbar.Button asChild>\n <Select.TriggerButton />\n </Toolbar.Button>\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {TemplateKinds.map((kind) => (\n <Select.Option key={kind} value={kind}>\n {kind}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n {template.kind.include === 'schema-matching' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('typename placeholder')}\n defaultValue={template.kind.typename}\n onChange={handleTypenameChange}\n />\n </Input.Root>\n )}\n {template.kind.include === 'automatically' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('description placeholder')}\n defaultValue={template.kind.description}\n onChange={handleDescriptionChange}\n />\n </Input.Root>\n )}\n </Toolbar.Root>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './AmbientDialog';\nexport * from './AssistantSettings';\nexport * from './Prompt';\nexport * from './PromptSettings';\nexport * from './TemplateEditor';\nexport * from './Thread';\nexport * from './Toolbox';\n\n// TODO(burdon): Lazy loading causes issues with Tabster.\n// Repro: open assistant dialog then close.\n// https://github.com/microsoft/fluentui/issues/34020\nexport const AssistantDialog = lazy(() => import('./AssistantDialog'));\nexport const ChatContainer = lazy(() => import('./ChatContainer'));\nexport const TemplateContainer = lazy(() => import('./TemplateContainer'));\n"],
5
- "mappings": "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",
6
- "names": ["import_react", "import_react_ui", "DEFAULT_VALUE", "LLM_PROVIDER_LABELS", "edge", "ollama", "lmstudio", "AssistantSettings", "settings", "t", "useTranslation", "ASSISTANT_PLUGIN", "React", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Input", "Switch", "checked", "customPrompts", "onCheckedChange", "Select", "Root", "value", "llmProvider", "onValueChange", "undefined", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "Option", "LLM_PROVIDERS", "map", "model", "key", "edgeModel", "DEFAULT_EDGE_MODELS", "ollamaModel", "DEFAULT_OLLAMA_MODELS", "PromptSettings", "template", "handleKindChange", "useCallback", "kind", "Match", "type", "pipe", "withReturnType", "when", "include", "typename", "description", "orElse", "handleTypenameChange", "debounce", "event", "target", "handleDescriptionChange", "div", "className", "h2", "Toolbar", "Button", "asChild", "TemplateKinds", "TextInput", "defaultValue", "onChange", "AssistantDialog", "lazy", "ChatContainer", "TemplateContainer"]
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { DEFAULT_EDGE_MODELS, DEFAULT_OLLAMA_MODELS } from '@dxos/ai';\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { ASSISTANT_PLUGIN } from '../../meta';\nimport { LLM_PROVIDERS, type AssistantSettingsProps } from '../../types';\n\n// TODO(burdon): Factor out default Selector.\nconst DEFAULT_VALUE = '__default';\n\nconst LLM_PROVIDER_LABELS = {\n edge: 'DXOS',\n ollama: 'Ollama',\n lmstudio: 'LM Studio',\n} as const;\n\nexport const AssistantSettings = ({ settings }: { settings: AssistantSettingsProps }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n\n return (\n <DeprecatedFormContainer>\n <DeprecatedFormInput label={t('settings custom prompts label')}>\n <Input.Switch\n checked={!!settings.customPrompts}\n onCheckedChange={(checked) => (settings.customPrompts = checked)}\n />\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings llm provider label')}>\n <Select.Root\n value={settings.llmProvider ?? 'edge'}\n onValueChange={(value) => {\n settings.llmProvider = value === DEFAULT_VALUE ? undefined : (value as any);\n }}\n >\n <Select.TriggerButton placeholder={t('settings llm provider label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {LLM_PROVIDERS.map((model) => (\n <Select.Option key={model} value={model}>\n {LLM_PROVIDER_LABELS[model]}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings edge llm model label')}>\n <Select.Root\n value={settings.edgeModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n settings.edgeModel = value === DEFAULT_VALUE ? undefined : value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_EDGE_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n\n <DeprecatedFormInput label={t('settings ollama llm model label')}>\n <Select.Root\n value={settings.ollamaModel ?? DEFAULT_VALUE}\n onValueChange={(value) => {\n settings.ollamaModel = value === DEFAULT_VALUE ? undefined : value;\n }}\n >\n <Select.TriggerButton placeholder={t('settings default llm model label')} />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n <Select.Option value={DEFAULT_VALUE}>{t('settings default label')}</Select.Option>\n {DEFAULT_OLLAMA_MODELS.map((model) => (\n <Select.Option key={model} value={model}>\n {model}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </DeprecatedFormInput>\n </DeprecatedFormContainer>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Match, type Schema } from 'effect';\nimport React, { type ChangeEvent, useCallback } from 'react';\n\nimport { debounce } from '@dxos/async';\nimport { Input, Select, Toolbar, useTranslation } from '@dxos/react-ui';\n\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { TemplateKinds, type TemplateType, type TemplateKindSchema } from '../types';\n\nexport const PromptSettings = ({ template }: { template: TemplateType }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n\n const handleKindChange = useCallback(\n (value: string) => {\n const kind = Match.type<string>().pipe(\n Match.withReturnType<Schema.Schema.Type<typeof TemplateKindSchema>>(),\n Match.when('always', () => ({ include: 'always' })),\n Match.when('schema-matching', () => ({ include: 'schema-matching', typename: '' })),\n Match.when('automatically', () => ({ include: 'automatically', description: '' })),\n Match.orElse(() => ({ include: 'manual' })),\n )(value);\n\n template.kind = kind;\n },\n [template],\n );\n\n const handleTypenameChange = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (template.kind.include === 'schema-matching') {\n template.kind.typename = event.target.value;\n }\n }, 300),\n [template.kind.include],\n );\n\n const handleDescriptionChange = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n if (template.kind.include === 'automatically') {\n template.kind.description = event.target.value;\n }\n }, 300),\n [template.kind.include],\n );\n\n return (\n <div className='p-2 flex flex-col gap-4'>\n <h2>{t('prompt rules label')}</h2>\n <Toolbar.Root>\n <Select.Root value={template.kind.include} onValueChange={handleKindChange}>\n <Toolbar.Button asChild>\n <Select.TriggerButton />\n </Toolbar.Button>\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {TemplateKinds.map((kind) => (\n <Select.Option key={kind} value={kind}>\n {kind}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n {template.kind.include === 'schema-matching' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('typename placeholder')}\n defaultValue={template.kind.typename}\n onChange={handleTypenameChange}\n />\n </Input.Root>\n )}\n {template.kind.include === 'automatically' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('description placeholder')}\n defaultValue={template.kind.description}\n onChange={handleDescriptionChange}\n />\n </Input.Root>\n )}\n </Toolbar.Root>\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './AmbientDialog';\nexport * from './AssistantSettings';\nexport * from './Prompt';\nexport * from './PromptSettings';\nexport * from './TemplateEditor';\nexport * from './Thread';\nexport * from './Toolbox';\n\n// TODO(burdon): Lazy loading causes issues with Tabster.\n// Repro: open assistant dialog then close.\n// https://github.com/microsoft/fluentui/issues/34020\nexport const AssistantDialog = lazy(() => import('./AssistantDialog'));\nexport const BlueprintContainer = lazy(() => import('./BlueprintContainer'));\nexport const ChatContainer = lazy(() => import('./ChatContainer'));\nexport const TemplateContainer = lazy(() => import('./TemplateContainer'));\n"],
5
+ "mappings": "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",
6
+ "names": ["import_react", "import_react_ui", "DEFAULT_VALUE", "LLM_PROVIDER_LABELS", "edge", "ollama", "lmstudio", "AssistantSettings", "settings", "t", "useTranslation", "ASSISTANT_PLUGIN", "React", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Input", "Switch", "checked", "customPrompts", "onCheckedChange", "Select", "Root", "value", "llmProvider", "onValueChange", "undefined", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "Option", "LLM_PROVIDERS", "map", "model", "key", "edgeModel", "DEFAULT_EDGE_MODELS", "ollamaModel", "DEFAULT_OLLAMA_MODELS", "PromptSettings", "template", "handleKindChange", "useCallback", "kind", "Match", "type", "pipe", "withReturnType", "when", "include", "typename", "description", "orElse", "handleTypenameChange", "debounce", "event", "target", "handleDescriptionChange", "div", "className", "h2", "Toolbar", "Button", "asChild", "TemplateKinds", "TextInput", "defaultValue", "onChange", "AssistantDialog", "lazy", "BlueprintContainer", "ChatContainer", "TemplateContainer"]
7
7
  }