@dxos/plugin-assistant 0.8.1 → 0.8.2-main.2f9c567

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 (197) hide show
  1. package/dist/lib/browser/{AssistantDialog-YSHMAHW5.mjs → AssistantDialog-WX6EKSXI.mjs} +3 -3
  2. package/dist/lib/browser/{ChatContainer-V5GP7DYF.mjs → ChatContainer-HMNWYDQ5.mjs} +3 -3
  3. package/dist/lib/browser/ChatContainer-HMNWYDQ5.mjs.map +7 -0
  4. package/dist/lib/browser/TemplateContainer-WKU5XFSO.mjs +22 -0
  5. package/dist/lib/browser/TemplateContainer-WKU5XFSO.mjs.map +7 -0
  6. package/dist/lib/browser/{ai-client-CDZLSNXE.mjs → ai-client-OK5SMYJC.mjs} +1 -1
  7. package/dist/lib/browser/{ai-client-CDZLSNXE.mjs.map → ai-client-OK5SMYJC.mjs.map} +2 -2
  8. package/dist/lib/browser/{app-graph-builder-MF5EVDWW.mjs → app-graph-builder-J5ISIFTE.mjs} +9 -39
  9. package/dist/lib/browser/app-graph-builder-J5ISIFTE.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-FMB7RGMP.mjs → chunk-4EXBK6UE.mjs} +127 -112
  11. package/dist/lib/browser/chunk-4EXBK6UE.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-5P7U35RJ.mjs +192 -0
  13. package/dist/lib/browser/chunk-5P7U35RJ.mjs.map +7 -0
  14. package/dist/lib/browser/chunk-J3V74ZRF.mjs +143 -0
  15. package/dist/lib/browser/chunk-J3V74ZRF.mjs.map +7 -0
  16. package/dist/lib/browser/index.mjs +14 -11
  17. package/dist/lib/browser/index.mjs.map +3 -3
  18. package/dist/lib/browser/{intent-resolver-WJGLKKVO.mjs → intent-resolver-MGHOSZY3.mjs} +5 -5
  19. package/dist/lib/browser/intent-resolver-MGHOSZY3.mjs.map +7 -0
  20. package/dist/lib/browser/meta.json +1 -1
  21. package/dist/lib/browser/{react-surface-57VRDOQT.mjs → react-surface-VP4ABBMH.mjs} +15 -15
  22. package/dist/lib/browser/react-surface-VP4ABBMH.mjs.map +7 -0
  23. package/dist/lib/browser/{settings-U6UFQX32.mjs → settings-OZX7J65A.mjs} +4 -4
  24. package/dist/lib/browser/settings-OZX7J65A.mjs.map +7 -0
  25. package/dist/lib/browser/types/index.mjs +3 -1
  26. package/dist/lib/node/{AssistantDialog-YI2BSGSX.cjs → AssistantDialog-2OTAZADX.cjs} +7 -7
  27. package/dist/lib/node/{ChatContainer-ZJ5JXF6A.cjs → ChatContainer-3CTBKBS2.cjs} +7 -7
  28. package/dist/lib/node/ChatContainer-3CTBKBS2.cjs.map +7 -0
  29. package/dist/lib/node/TemplateContainer-EQXKHWTF.cjs +52 -0
  30. package/dist/lib/node/TemplateContainer-EQXKHWTF.cjs.map +7 -0
  31. package/dist/lib/node/{ai-client-URCCYU6B.cjs → ai-client-3EVTLXTT.cjs} +4 -4
  32. package/dist/lib/node/{ai-client-URCCYU6B.cjs.map → ai-client-3EVTLXTT.cjs.map} +2 -2
  33. package/dist/lib/node/{app-graph-builder-N5ZUUI2Z.cjs → app-graph-builder-BBNLIGYJ.cjs} +14 -44
  34. package/dist/lib/node/app-graph-builder-BBNLIGYJ.cjs.map +7 -0
  35. package/dist/lib/node/chunk-VG2UQY4S.cjs +216 -0
  36. package/dist/lib/node/chunk-VG2UQY4S.cjs.map +7 -0
  37. package/dist/lib/node/{chunk-ZKOC4ZFY.cjs → chunk-WFSXNO4H.cjs} +78 -61
  38. package/dist/lib/node/chunk-WFSXNO4H.cjs.map +7 -0
  39. package/dist/lib/node/{chunk-RPBKMP2E.cjs → chunk-XC7A3KUG.cjs} +138 -116
  40. package/dist/lib/node/chunk-XC7A3KUG.cjs.map +7 -0
  41. package/dist/lib/node/index.cjs +46 -43
  42. package/dist/lib/node/index.cjs.map +3 -3
  43. package/dist/lib/node/{intent-resolver-R3OSTIMH.cjs → intent-resolver-Z2NTL2FV.cjs} +9 -9
  44. package/dist/lib/node/intent-resolver-Z2NTL2FV.cjs.map +7 -0
  45. package/dist/lib/node/meta.json +1 -1
  46. package/dist/lib/node/{react-surface-NUQTM6MS.cjs → react-surface-HNXDAZ7C.cjs} +22 -22
  47. package/dist/lib/node/react-surface-HNXDAZ7C.cjs.map +7 -0
  48. package/dist/lib/node/{settings-TXGRCYAL.cjs → settings-WLTC7XO5.cjs} +7 -7
  49. package/dist/lib/node/settings-WLTC7XO5.cjs.map +7 -0
  50. package/dist/lib/node/types/index.cjs +14 -12
  51. package/dist/lib/node/types/index.cjs.map +2 -2
  52. package/dist/lib/node-esm/{AssistantDialog-U2FQX5TD.mjs → AssistantDialog-GNLPYXY4.mjs} +3 -3
  53. package/dist/lib/node-esm/{ChatContainer-QW3OOXTT.mjs → ChatContainer-FGHDDORQ.mjs} +3 -3
  54. package/dist/lib/node-esm/ChatContainer-FGHDDORQ.mjs.map +7 -0
  55. package/dist/lib/node-esm/TemplateContainer-3LEBT5ZC.mjs +23 -0
  56. package/dist/lib/node-esm/TemplateContainer-3LEBT5ZC.mjs.map +7 -0
  57. package/dist/lib/node-esm/{ai-client-WMHS5EGV.mjs → ai-client-LYCBXZI7.mjs} +1 -1
  58. package/dist/lib/node-esm/{ai-client-WMHS5EGV.mjs.map → ai-client-LYCBXZI7.mjs.map} +2 -2
  59. package/dist/lib/node-esm/{app-graph-builder-DWBNIMHM.mjs → app-graph-builder-245AWCPJ.mjs} +9 -39
  60. package/dist/lib/node-esm/app-graph-builder-245AWCPJ.mjs.map +7 -0
  61. package/dist/lib/node-esm/chunk-G5LUEW72.mjs +144 -0
  62. package/dist/lib/node-esm/chunk-G5LUEW72.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-MVDAY3CZ.mjs → chunk-JX73NOSL.mjs} +127 -112
  64. package/dist/lib/node-esm/chunk-JX73NOSL.mjs.map +7 -0
  65. package/dist/lib/node-esm/chunk-UZWYXNR5.mjs +193 -0
  66. package/dist/lib/node-esm/chunk-UZWYXNR5.mjs.map +7 -0
  67. package/dist/lib/node-esm/index.mjs +14 -11
  68. package/dist/lib/node-esm/index.mjs.map +3 -3
  69. package/dist/lib/node-esm/{intent-resolver-H32TL4X6.mjs → intent-resolver-DMQXPV2H.mjs} +5 -5
  70. package/dist/lib/node-esm/intent-resolver-DMQXPV2H.mjs.map +7 -0
  71. package/dist/lib/node-esm/meta.json +1 -1
  72. package/dist/lib/node-esm/{react-surface-JBVZF6CP.mjs → react-surface-NYXMBFPY.mjs} +15 -15
  73. package/dist/lib/node-esm/react-surface-NYXMBFPY.mjs.map +7 -0
  74. package/dist/lib/node-esm/{settings-DZU5PNXM.mjs → settings-CLE57WEP.mjs} +4 -4
  75. package/dist/lib/node-esm/settings-CLE57WEP.mjs.map +7 -0
  76. package/dist/lib/node-esm/types/index.mjs +3 -1
  77. package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
  78. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  79. package/dist/types/src/capabilities/index.d.ts +1 -1
  80. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  81. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  82. package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
  83. package/dist/types/src/components/ChatContainer.d.ts +4 -3
  84. package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
  85. package/dist/types/src/components/PromptSettings.d.ts +6 -0
  86. package/dist/types/src/components/PromptSettings.d.ts.map +1 -0
  87. package/dist/types/src/components/TemplateContainer.d.ts.map +1 -1
  88. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +2 -2
  89. package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
  90. package/dist/types/src/components/Thread/ThreadContainer.d.ts.map +1 -1
  91. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts +2 -2
  92. package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
  93. package/dist/types/src/components/Toolbox/Toolbox.d.ts +1 -1
  94. package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
  95. package/dist/types/src/components/index.d.ts +2 -6
  96. package/dist/types/src/components/index.d.ts.map +1 -1
  97. package/dist/types/src/hooks/index.d.ts +0 -1
  98. package/dist/types/src/hooks/index.d.ts.map +1 -1
  99. package/dist/types/src/hooks/processor.d.ts.map +1 -1
  100. package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
  101. package/dist/types/src/hooks/useMessageQueue.d.ts +0 -3
  102. package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -1
  103. package/dist/types/src/tools/function.d.ts +1 -1
  104. package/dist/types/src/tools/function.d.ts.map +1 -1
  105. package/dist/types/src/tools/openapi.d.ts.map +1 -1
  106. package/dist/types/src/translations.d.ts +3 -0
  107. package/dist/types/src/translations.d.ts.map +1 -1
  108. package/dist/types/src/types/service.d.ts +96 -95
  109. package/dist/types/src/types/service.d.ts.map +1 -1
  110. package/dist/types/src/types/template.d.ts +52 -52
  111. package/dist/types/src/types/template.d.ts.map +1 -1
  112. package/dist/types/src/types/types.d.ts +20 -18
  113. package/dist/types/src/types/types.d.ts.map +1 -1
  114. package/package.json +61 -58
  115. package/src/AssistantPlugin.tsx +2 -2
  116. package/src/capabilities/ai-client.ts +0 -1
  117. package/src/capabilities/app-graph-builder.ts +6 -38
  118. package/src/capabilities/index.ts +1 -1
  119. package/src/capabilities/intent-resolver.ts +3 -3
  120. package/src/capabilities/react-surface.tsx +11 -9
  121. package/src/capabilities/settings.ts +2 -2
  122. package/src/components/AssistantSettings/AssistantSettings.tsx +28 -6
  123. package/src/components/ChatContainer.tsx +6 -8
  124. package/src/components/PromptSettings.tsx +91 -0
  125. package/src/components/TemplateContainer.tsx +3 -79
  126. package/src/components/TemplateEditor/TemplateEditor.stories.tsx +2 -2
  127. package/src/components/TemplateEditor/TemplateForm.stories.tsx +2 -2
  128. package/src/components/TemplateEditor/TemplateForm.tsx +2 -2
  129. package/src/components/Thread/ThreadContainer.stories.tsx +12 -20
  130. package/src/components/Thread/ThreadContainer.tsx +24 -2
  131. package/src/components/Thread/ThreadMessage.tsx +5 -2
  132. package/src/components/Toolbox/Toolbox.stories.tsx +1 -1
  133. package/src/components/Toolbox/Toolbox.tsx +1 -1
  134. package/src/components/index.ts +1 -1
  135. package/src/hooks/index.ts +0 -1
  136. package/src/hooks/processor.ts +26 -4
  137. package/src/hooks/useChatProcessor.tsx +4 -3
  138. package/src/testing/test-services.ts +6 -6
  139. package/src/tools/function.ts +2 -2
  140. package/src/tools/openapi.ts +4 -3
  141. package/src/translations.ts +5 -4
  142. package/src/types/service.ts +39 -37
  143. package/src/types/template.ts +27 -25
  144. package/src/types/types.ts +20 -17
  145. package/dist/lib/browser/ChatContainer-V5GP7DYF.mjs.map +0 -7
  146. package/dist/lib/browser/TemplateContainer-K4EJNGIL.mjs +0 -78
  147. package/dist/lib/browser/TemplateContainer-K4EJNGIL.mjs.map +0 -7
  148. package/dist/lib/browser/app-graph-builder-MF5EVDWW.mjs.map +0 -7
  149. package/dist/lib/browser/chunk-FMB7RGMP.mjs.map +0 -7
  150. package/dist/lib/browser/chunk-IAMR2FAE.mjs +0 -183
  151. package/dist/lib/browser/chunk-IAMR2FAE.mjs.map +0 -7
  152. package/dist/lib/browser/chunk-KYMKVE6M.mjs +0 -128
  153. package/dist/lib/browser/chunk-KYMKVE6M.mjs.map +0 -7
  154. package/dist/lib/browser/intent-resolver-WJGLKKVO.mjs.map +0 -7
  155. package/dist/lib/browser/react-surface-57VRDOQT.mjs.map +0 -7
  156. package/dist/lib/browser/settings-U6UFQX32.mjs.map +0 -7
  157. package/dist/lib/node/ChatContainer-ZJ5JXF6A.cjs.map +0 -7
  158. package/dist/lib/node/TemplateContainer-XWFYJB4T.cjs +0 -104
  159. package/dist/lib/node/TemplateContainer-XWFYJB4T.cjs.map +0 -7
  160. package/dist/lib/node/app-graph-builder-N5ZUUI2Z.cjs.map +0 -7
  161. package/dist/lib/node/chunk-APRU3QWK.cjs +0 -206
  162. package/dist/lib/node/chunk-APRU3QWK.cjs.map +0 -7
  163. package/dist/lib/node/chunk-RPBKMP2E.cjs.map +0 -7
  164. package/dist/lib/node/chunk-ZKOC4ZFY.cjs.map +0 -7
  165. package/dist/lib/node/intent-resolver-R3OSTIMH.cjs.map +0 -7
  166. package/dist/lib/node/react-surface-NUQTM6MS.cjs.map +0 -7
  167. package/dist/lib/node/settings-TXGRCYAL.cjs.map +0 -7
  168. package/dist/lib/node-esm/ChatContainer-QW3OOXTT.mjs.map +0 -7
  169. package/dist/lib/node-esm/TemplateContainer-EUM2X65J.mjs +0 -79
  170. package/dist/lib/node-esm/TemplateContainer-EUM2X65J.mjs.map +0 -7
  171. package/dist/lib/node-esm/app-graph-builder-DWBNIMHM.mjs.map +0 -7
  172. package/dist/lib/node-esm/chunk-GBBXIW5F.mjs +0 -129
  173. package/dist/lib/node-esm/chunk-GBBXIW5F.mjs.map +0 -7
  174. package/dist/lib/node-esm/chunk-MVDAY3CZ.mjs.map +0 -7
  175. package/dist/lib/node-esm/chunk-MXK2EANZ.mjs +0 -184
  176. package/dist/lib/node-esm/chunk-MXK2EANZ.mjs.map +0 -7
  177. package/dist/lib/node-esm/intent-resolver-H32TL4X6.mjs.map +0 -7
  178. package/dist/lib/node-esm/react-surface-JBVZF6CP.mjs.map +0 -7
  179. package/dist/lib/node-esm/settings-DZU5PNXM.mjs.map +0 -7
  180. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts +0 -6
  181. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts.map +0 -1
  182. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.stories.d.ts +0 -8
  183. package/dist/types/src/components/ServiceRegistry/ServiceRegistry.stories.d.ts.map +0 -1
  184. package/dist/types/src/components/ServiceRegistry/index.d.ts +0 -2
  185. package/dist/types/src/components/ServiceRegistry/index.d.ts.map +0 -1
  186. package/dist/types/src/hooks/invocation-handler.d.ts +0 -5
  187. package/dist/types/src/hooks/invocation-handler.d.ts.map +0 -1
  188. package/dist/types/src/hooks/useLocalTriggerManager.d.ts +0 -3
  189. package/dist/types/src/hooks/useLocalTriggerManager.d.ts.map +0 -1
  190. package/src/components/ServiceRegistry/ServiceRegistry.stories.tsx +0 -49
  191. package/src/components/ServiceRegistry/ServiceRegistry.tsx +0 -76
  192. package/src/components/ServiceRegistry/index.ts +0 -5
  193. package/src/hooks/invocation-handler.ts +0 -107
  194. package/src/hooks/useLocalTriggerManager.ts +0 -82
  195. /package/dist/lib/browser/{AssistantDialog-YSHMAHW5.mjs.map → AssistantDialog-WX6EKSXI.mjs.map} +0 -0
  196. /package/dist/lib/node/{AssistantDialog-YI2BSGSX.cjs.map → AssistantDialog-2OTAZADX.cjs.map} +0 -0
  197. /package/dist/lib/node-esm/{AssistantDialog-U2FQX5TD.mjs.map → AssistantDialog-GNLPYXY4.mjs.map} +0 -0
@@ -1,128 +0,0 @@
1
- import {
2
- useServices
3
- } from "./chunk-FMB7RGMP.mjs";
4
- import {
5
- ServiceType,
6
- categoryIcons
7
- } from "./chunk-IAMR2FAE.mjs";
8
- import {
9
- ASSISTANT_PLUGIN
10
- } from "./chunk-3HCI5FIL.mjs";
11
-
12
- // packages/plugins/plugin-assistant/src/components/AssistantSettings/AssistantSettings.tsx
13
- import React from "react";
14
- import { DEFAULT_EDGE_MODELS, DEFAULT_OLLAMA_MODELS } from "@dxos/assistant";
15
- import { Input, Select, useTranslation } from "@dxos/react-ui";
16
- import { DeprecatedFormContainer, DeprecatedFormInput } from "@dxos/react-ui-form";
17
- var DEFAULT_VALUE = "__default";
18
- var AssistantSettings = ({ settings }) => {
19
- const { t } = useTranslation(ASSISTANT_PLUGIN);
20
- return /* @__PURE__ */ React.createElement(DeprecatedFormContainer, null, /* @__PURE__ */ React.createElement(DeprecatedFormInput, {
21
- label: t("settings custom prompts label")
22
- }, /* @__PURE__ */ React.createElement(Input.Switch, {
23
- checked: !!settings.customPrompts,
24
- onCheckedChange: (checked) => settings.customPrompts = checked
25
- })), /* @__PURE__ */ React.createElement(DeprecatedFormInput, {
26
- label: t("settings llm provider label")
27
- }, /* @__PURE__ */ React.createElement(Input.Switch, {
28
- checked: settings.llmProvider === "ollama",
29
- onCheckedChange: (checked) => settings.llmProvider = checked ? "ollama" : "edge"
30
- })), /* @__PURE__ */ React.createElement(DeprecatedFormInput, {
31
- label: t("settings edge llm model label")
32
- }, /* @__PURE__ */ React.createElement(Select.Root, {
33
- value: settings.edgeModel ?? DEFAULT_VALUE,
34
- onValueChange: (value) => {
35
- settings.edgeModel = value === DEFAULT_VALUE ? void 0 : value;
36
- }
37
- }, /* @__PURE__ */ React.createElement(Select.TriggerButton, {
38
- placeholder: t("settings default llm model label")
39
- }), /* @__PURE__ */ React.createElement(Select.Portal, null, /* @__PURE__ */ React.createElement(Select.Content, null, /* @__PURE__ */ React.createElement(Select.Viewport, null, /* @__PURE__ */ React.createElement(Select.Option, {
40
- value: DEFAULT_VALUE
41
- }, t("settings default label")), DEFAULT_EDGE_MODELS.map((model) => /* @__PURE__ */ React.createElement(Select.Option, {
42
- key: model,
43
- value: model
44
- }, model))))))), /* @__PURE__ */ React.createElement(DeprecatedFormInput, {
45
- label: t("settings ollama llm model label")
46
- }, /* @__PURE__ */ React.createElement(Select.Root, {
47
- value: settings.ollamaModel ?? DEFAULT_VALUE,
48
- onValueChange: (value) => {
49
- settings.ollamaModel = value === DEFAULT_VALUE ? void 0 : value;
50
- }
51
- }, /* @__PURE__ */ React.createElement(Select.TriggerButton, {
52
- placeholder: t("settings default llm model label")
53
- }), /* @__PURE__ */ React.createElement(Select.Portal, null, /* @__PURE__ */ React.createElement(Select.Content, null, /* @__PURE__ */ React.createElement(Select.Viewport, null, /* @__PURE__ */ React.createElement(Select.Option, {
54
- value: DEFAULT_VALUE
55
- }, t("settings default label")), DEFAULT_OLLAMA_MODELS.map((model) => /* @__PURE__ */ React.createElement(Select.Option, {
56
- key: model,
57
- value: model
58
- }, model))))))));
59
- };
60
-
61
- // packages/plugins/plugin-assistant/src/components/ServiceRegistry/ServiceRegistry.tsx
62
- import React2, { useMemo } from "react";
63
- import { Filter } from "@dxos/client/echo";
64
- import { useQuery } from "@dxos/react-client/echo";
65
- import { Icon, Input as Input2, List, ListItem } from "@dxos/react-ui";
66
- var ServiceRegistry = ({ space }) => {
67
- const matchingServices = useServices(space);
68
- const enabledServices = useQuery(space, Filter.schema(ServiceType));
69
- const services = useMemo(() => {
70
- return matchingServices.map((service) => enabledServices.find((s) => s.serviceId === service.serviceId) ?? service);
71
- }, [
72
- matchingServices,
73
- enabledServices
74
- ]);
75
- const handleSetEnabled = (service, enabled) => {
76
- if (enabled) {
77
- space.db.add(service);
78
- } else {
79
- space.db.remove(service);
80
- }
81
- };
82
- return /* @__PURE__ */ React2.createElement(List, {
83
- classNames: "h-full grid auto-rows-[5rem] gap-2 p-2 pis-2 pie-2 overflow-y-auto scrollbar-thin"
84
- }, services.map((service) => /* @__PURE__ */ React2.createElement(ServiceItem, {
85
- key: service.serviceId,
86
- service,
87
- enabled: service.enabled,
88
- setEnabled: (enabled) => handleSetEnabled(service, enabled)
89
- })));
90
- };
91
- var ServiceItem = ({ service, enabled, setEnabled }) => {
92
- return /* @__PURE__ */ React2.createElement(ListItem.Root, {
93
- classNames: "flex flex-col gap-1 p-1 overflow-hidden rounded-md border border-separator"
94
- }, /* @__PURE__ */ React2.createElement("div", {
95
- className: "grid grid-cols-[40px_1fr_40px]"
96
- }, /* @__PURE__ */ React2.createElement("div", {
97
- className: "flex gow justify-center items-center"
98
- }, /* @__PURE__ */ React2.createElement(Icon, {
99
- icon: categoryIcons[service.category ?? "default"] ?? "ph--placeholder--regular",
100
- size: 6
101
- })), /* @__PURE__ */ React2.createElement("div", {
102
- className: "grow items-center truncate mie-2"
103
- }, service.name), /* @__PURE__ */ React2.createElement("div", {
104
- className: "flex gow justify-center items-center"
105
- }, /* @__PURE__ */ React2.createElement(Input2.Root, null, /* @__PURE__ */ React2.createElement(Input2.Switch, {
106
- checked: enabled,
107
- onClick: () => setEnabled?.(!enabled)
108
- })))), /* @__PURE__ */ React2.createElement("div", {
109
- className: "grid grid-cols-[40px_1fr]"
110
- }, /* @__PURE__ */ React2.createElement("div", null), /* @__PURE__ */ React2.createElement("div", {
111
- className: "text-sm text-subdued line-clamp-2 mie-1"
112
- }, service.description)));
113
- };
114
-
115
- // packages/plugins/plugin-assistant/src/components/index.ts
116
- import { lazy } from "react";
117
- var AssistantDialog = lazy(() => import("./AssistantDialog-YSHMAHW5.mjs"));
118
- var ChatContainer = lazy(() => import("./ChatContainer-V5GP7DYF.mjs"));
119
- var TemplateContainer = lazy(() => import("./TemplateContainer-K4EJNGIL.mjs"));
120
-
121
- export {
122
- AssistantSettings,
123
- ServiceRegistry,
124
- AssistantDialog,
125
- ChatContainer,
126
- TemplateContainer
127
- };
128
- //# sourceMappingURL=chunk-KYMKVE6M.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/AssistantSettings/AssistantSettings.tsx", "../../../src/components/ServiceRegistry/ServiceRegistry.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/assistant';\nimport { Input, Select, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer, DeprecatedFormInput } from '@dxos/react-ui-form';\n\nimport { ASSISTANT_PLUGIN } from '../../meta';\nimport { type AssistantSettingsProps } from '../../types';\n\n// TODO(burdon): Factor out.\nconst DEFAULT_VALUE = '__default';\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 <Input.Switch\n checked={settings.llmProvider === 'ollama'}\n onCheckedChange={(checked) => (settings.llmProvider = checked ? 'ollama' : 'edge')}\n />\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 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 // TODO(burdon): Reaplce with SpacePlugin intent.\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 './AssistantSettings';\nexport * from './ServiceRegistry';\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": ["React", "DEFAULT_EDGE_MODELS", "DEFAULT_OLLAMA_MODELS", "Input", "Select", "useTranslation", "DeprecatedFormContainer", "DeprecatedFormInput", "DEFAULT_VALUE", "AssistantSettings", "settings", "t", "useTranslation", "ASSISTANT_PLUGIN", "DeprecatedFormContainer", "DeprecatedFormInput", "label", "Input", "Switch", "checked", "customPrompts", "onCheckedChange", "llmProvider", "Select", "Root", "value", "edgeModel", "onValueChange", "undefined", "TriggerButton", "placeholder", "Portal", "Content", "Viewport", "Option", "DEFAULT_EDGE_MODELS", "map", "model", "key", "ollamaModel", "DEFAULT_OLLAMA_MODELS", "React", "useMemo", "Filter", "useQuery", "Icon", "Input", "List", "ListItem", "ServiceRegistry", "space", "matchingServices", "useServices", "enabledServices", "useQuery", "Filter", "schema", "ServiceType", "services", "useMemo", "map", "service", "find", "s", "serviceId", "handleSetEnabled", "enabled", "db", "add", "remove", "React", "List", "classNames", "ServiceItem", "key", "setEnabled", "ListItem", "Root", "div", "className", "Icon", "icon", "categoryIcons", "category", "size", "name", "Input", "Switch", "checked", "onClick", "description", "lazy", "AssistantDialog", "lazy", "ChatContainer", "TemplateContainer"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/intent-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createResolver } from '@dxos/app-framework';\nimport { ObjectId } from '@dxos/echo-schema';\nimport { DXN, QueueSubspaceTags } from '@dxos/keys';\nimport { create, refFromDXN } from '@dxos/live-object';\n\nimport { AssistantAction, AIChatType, TemplateType } from '../types';\n\nexport default () => [\n contributes(\n Capabilities.IntentResolver,\n createResolver({\n intent: AssistantAction.CreateChat,\n resolve: ({ spaceId, name }) => ({\n data: {\n object: create(AIChatType, {\n assistantChatQueue: refFromDXN(\n new DXN(DXN.kind.QUEUE, [QueueSubspaceTags.DATA, spaceId, ObjectId.random()]),\n ),\n }),\n },\n }),\n }),\n ),\n contributes(\n Capabilities.IntentResolver,\n createResolver({\n intent: AssistantAction.CreateTemplate,\n resolve: ({ name }) => ({\n data: {\n object: create(TemplateType, { name, kind: { include: 'manual' }, source: '{{! Template }}' }),\n },\n }),\n }),\n ),\n];\n"],
5
- "mappings": ";;;;;;;;AAIA,SAASA,cAAcC,aAAaC,sBAAsB;AAC1D,SAASC,gBAAgB;AACzB,SAASC,KAAKC,yBAAyB;AACvC,SAASC,QAAQC,kBAAkB;AAInC,IAAA,0BAAe,MAAM;EACnBC,YACEC,aAAaC,gBACbC,eAAe;IACbC,QAAQC,gBAAgBC;IACxBC,SAAS,CAAC,EAAEC,SAASC,KAAI,OAAQ;MAC/BC,MAAM;QACJC,QAAQC,OAAOC,YAAY;UACzBC,oBAAoBC,WAClB,IAAIC,IAAIA,IAAIC,KAAKC,OAAO;YAACC,kBAAkBC;YAAMZ;YAASa,SAASC,OAAM;WAAG,CAAA;QAEhF,CAAA;MACF;IACF;EACF,CAAA,CAAA;EAEFtB,YACEC,aAAaC,gBACbC,eAAe;IACbC,QAAQC,gBAAgBkB;IACxBhB,SAAS,CAAC,EAAEE,KAAI,OAAQ;MACtBC,MAAM;QACJC,QAAQC,OAAOY,cAAc;UAAEf;UAAMQ,MAAM;YAAEQ,SAAS;UAAS;UAAGC,QAAQ;QAAkB,CAAA;MAC9F;IACF;EACF,CAAA,CAAA;;",
6
- "names": ["Capabilities", "contributes", "createResolver", "ObjectId", "DXN", "QueueSubspaceTags", "create", "refFromDXN", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "AssistantAction", "CreateChat", "resolve", "spaceId", "name", "data", "object", "create", "AIChatType", "assistantChatQueue", "refFromDXN", "DXN", "kind", "QUEUE", "QueueSubspaceTags", "DATA", "ObjectId", "random", "CreateTemplate", "TemplateType", "include", "source"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Capabilities, contributes, createSurface } from '@dxos/app-framework';\nimport { isInstanceOf } from '@dxos/echo-schema';\nimport { getTypename } from '@dxos/live-object';\nimport { SettingsStore } from '@dxos/local-storage';\nimport { fullyQualifiedId, isReactiveObject, isSpace, type Space } from '@dxos/react-client/echo';\n\nimport { AssistantDialog, AssistantSettings, ChatContainer, ServiceRegistry, TemplateContainer } from '../components';\nimport { ASSISTANT_PLUGIN, ASSISTANT_DIALOG } from '../meta';\nimport { AIChatType, type AssistantSettingsProps, TemplateType } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${ASSISTANT_PLUGIN}/plugin-settings`,\n role: 'article',\n filter: (data): data is { subject: SettingsStore<AssistantSettingsProps> } =>\n data.subject instanceof SettingsStore && data.subject.prefix === ASSISTANT_PLUGIN,\n component: ({ data: { subject } }) => <AssistantSettings settings={subject.value} />,\n }),\n createSurface({\n id: ASSISTANT_DIALOG,\n role: 'dialog',\n filter: (data): data is { props: { chat: AIChatType } } => data.component === ASSISTANT_DIALOG,\n component: ({ data }) => <AssistantDialog {...data.props} />,\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/chat`,\n role: 'article',\n filter: (data): data is { subject: AIChatType; variant: undefined } =>\n isInstanceOf(AIChatType, data.subject) && data.variant !== 'assistant-chat',\n component: ({ data, role }) => <ChatContainer role={role} chat={data.subject} />,\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/object-chat`,\n role: 'article',\n filter: (data): data is { companionTo: AIChatType; subject: 'assistant-chat' } =>\n isReactiveObject(data.companionTo) && data.companionTo.assistantChatQueue && data.subject === 'assistant-chat',\n component: ({ data, role }) => {\n const associatedArtifact = useMemo(\n () => ({\n id: fullyQualifiedId(data.companionTo),\n typename: getTypename(data.companionTo) ?? 'unknown',\n }),\n [data.companionTo],\n );\n return <ChatContainer role={role} chat={data.companionTo} associatedArtifact={associatedArtifact} />;\n },\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/template`,\n role: 'article',\n filter: (data): data is { subject: TemplateType } => isInstanceOf(TemplateType, data.subject),\n component: ({ data, role }) => <TemplateContainer role={role} template={data.subject} />,\n }),\n createSurface({\n id: `${ASSISTANT_PLUGIN}/service-registry`,\n role: 'deck-companion--service-registry',\n filter: (data): data is { subject: Space } => isSpace(data.subject),\n component: ({ data }) => <ServiceRegistry space={data.subject} />,\n }),\n ]);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAIA,OAAOA,SAASC,eAAe;AAE/B,SAASC,cAAcC,aAAaC,qBAAqB;AACzD,SAASC,oBAAoB;AAC7B,SAASC,mBAAmB;AAC5B,SAASC,qBAAqB;AAC9B,SAASC,kBAAkBC,kBAAkBC,eAA2B;AAMxE,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGC,gBAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACPA,KAAKC,mBAAmBC,iBAAiBF,KAAKC,QAAQE,WAAWN;IACnEO,WAAW,CAAC,EAAEJ,MAAM,EAAEC,QAAO,EAAE,MAAO,sBAAA,cAACI,mBAAAA;MAAkBC,UAAUL,QAAQM;;EAC7E,CAAA;EACAZ,cAAc;IACZC,IAAIY;IACJV,MAAM;IACNC,QAAQ,CAACC,SAAkDA,KAAKI,cAAcI;IAC9EJ,WAAW,CAAC,EAAEJ,KAAI,MAAO,sBAAA,cAACS,iBAAoBT,KAAKU,KAAK;EAC1D,CAAA;EACAf,cAAc;IACZC,IAAI,GAAGC,gBAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACPW,aAAaC,YAAYZ,KAAKC,OAAO,KAAKD,KAAKa,YAAY;IAC7DT,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAO,sBAAA,cAACgB,eAAAA;MAAchB;MAAYiB,MAAMf,KAAKC;;EACvE,CAAA;EACAN,cAAc;IACZC,IAAI,GAAGC,gBAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACPgB,iBAAiBhB,KAAKiB,WAAW,KAAKjB,KAAKiB,YAAYC,sBAAsBlB,KAAKC,YAAY;IAChGG,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAE;AACxB,YAAMqB,qBAAqBC,QACzB,OAAO;QACLxB,IAAIyB,iBAAiBrB,KAAKiB,WAAW;QACrCK,UAAUC,YAAYvB,KAAKiB,WAAW,KAAK;MAC7C,IACA;QAACjB,KAAKiB;OAAY;AAEpB,aAAO,sBAAA,cAACH,eAAAA;QAAchB;QAAYiB,MAAMf,KAAKiB;QAAaE;;IAC5D;EACF,CAAA;EACAxB,cAAc;IACZC,IAAI,GAAGC,gBAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAA4CW,aAAaa,cAAcxB,KAAKC,OAAO;IAC5FG,WAAW,CAAC,EAAEJ,MAAMF,KAAI,MAAO,sBAAA,cAAC2B,mBAAAA;MAAkB3B;MAAY4B,UAAU1B,KAAKC;;EAC/E,CAAA;EACAN,cAAc;IACZC,IAAI,GAAGC,gBAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAAqC2B,QAAQ3B,KAAKC,OAAO;IAClEG,WAAW,CAAC,EAAEJ,KAAI,MAAO,sBAAA,cAAC4B,iBAAAA;MAAgBC,OAAO7B,KAAKC;;EACxD,CAAA;CACD;",
6
- "names": ["React", "useMemo", "Capabilities", "contributes", "createSurface", "isInstanceOf", "getTypename", "SettingsStore", "fullyQualifiedId", "isReactiveObject", "isSpace", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "ASSISTANT_PLUGIN", "role", "filter", "data", "subject", "SettingsStore", "prefix", "component", "AssistantSettings", "settings", "value", "ASSISTANT_DIALOG", "AssistantDialog", "props", "isInstanceOf", "AIChatType", "variant", "ChatContainer", "chat", "isReactiveObject", "companionTo", "assistantChatQueue", "associatedArtifact", "useMemo", "fullyQualifiedId", "typename", "getTypename", "TemplateType", "TemplateContainer", "template", "isSpace", "ServiceRegistry", "space"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/settings.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { create } from '@dxos/live-object';\n\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { type AssistantSettingsProps, AssistantSettingsSchema } from '../types';\n\nexport default () => {\n const settings = create<AssistantSettingsProps>({});\n\n return contributes(Capabilities.Settings, {\n schema: AssistantSettingsSchema,\n prefix: ASSISTANT_PLUGIN,\n value: settings,\n });\n};\n"],
5
- "mappings": ";;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,cAAc;AAKvB,IAAA,mBAAe,MAAA;AACb,QAAMC,WAAWC,OAA+B,CAAC,CAAA;AAEjD,SAAOC,YAAYC,aAAaC,UAAU;IACxCC,QAAQC;IACRC,QAAQC;IACRC,OAAOT;EACT,CAAA;AACF;",
6
- "names": ["Capabilities", "contributes", "create", "settings", "create", "contributes", "Capabilities", "Settings", "schema", "AssistantSettingsSchema", "prefix", "ASSISTANT_PLUGIN", "value"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/ChatContainer.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, useCapabilities, useCapability } from '@dxos/app-framework';\nimport { type AssociatedArtifact } from '@dxos/artifact';\nimport { TranscriptionCapabilities } from '@dxos/plugin-transcription';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { ThreadContainer } from './Thread';\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { type AssistantSettingsProps, type AIChatType } from '../types';\n\n// TODO(burdon): Attention.\nexport const ChatContainer = ({\n role,\n chat,\n associatedArtifact,\n}: {\n role: string;\n chat: AIChatType;\n associatedArtifact?: AssociatedArtifact;\n}) => {\n const transcription = useCapabilities(TranscriptionCapabilities.Transcriber).length > 0;\n const settings = useCapability(Capabilities.SettingsStore).getStore<AssistantSettingsProps>(ASSISTANT_PLUGIN)?.value;\n\n return (\n <StackItem.Content role={role} classNames='container-max-width'>\n <ThreadContainer\n chat={chat}\n settings={settings}\n transcription={transcription}\n associatedArtifact={associatedArtifact}\n />\n </StackItem.Content>\n );\n};\n\nexport default ChatContainer;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAkB;AAElB,2BAA6D;AAE7D,kCAA0C;AAC1C,4BAA0B;AAOnB,IAAMA,gBAAgB,CAAC,EAC5BC,MACAC,MACAC,mBAAkB,MAKnB;AACC,QAAMC,oBAAgBC,sCAAgBC,sDAA0BC,WAAW,EAAEC,SAAS;AACtF,QAAMC,eAAWC,oCAAcC,kCAAaC,aAAa,EAAEC,SAAiCC,sCAAAA,GAAmBC;AAE/G,SACE,6BAAAC,QAAA,cAACC,gCAAUC,SAAO;IAACjB;IAAYkB,YAAW;KACxC,6BAAAH,QAAA,cAACI,uCAAAA;IACClB;IACAO;IACAL;IACAD;;AAIR;AAEA,IAAA,wBAAeH;",
6
- "names": ["ChatContainer", "role", "chat", "associatedArtifact", "transcription", "useCapabilities", "TranscriptionCapabilities", "Transcriber", "length", "settings", "useCapability", "Capabilities", "SettingsStore", "getStore", "ASSISTANT_PLUGIN", "value", "React", "StackItem", "Content", "classNames", "ThreadContainer"]
7
- }
@@ -1,104 +0,0 @@
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 TemplateContainer_XWFYJB4T_exports = {};
30
- __export(TemplateContainer_XWFYJB4T_exports, {
31
- TemplateContainer: () => TemplateContainer,
32
- default: () => TemplateContainer_default
33
- });
34
- module.exports = __toCommonJS(TemplateContainer_XWFYJB4T_exports);
35
- var import_chunk_XI2ARIEO = require("./chunk-XI2ARIEO.cjs");
36
- var import_chunk_APRU3QWK = require("./chunk-APRU3QWK.cjs");
37
- var import_chunk_Q5XWEMHB = require("./chunk-Q5XWEMHB.cjs");
38
- var import_effect = require("effect");
39
- var import_react = __toESM(require("react"));
40
- var import_async = require("@dxos/async");
41
- var import_react_ui = require("@dxos/react-ui");
42
- var import_react_ui_stack = require("@dxos/react-ui-stack");
43
- var TemplateContainer = ({ template, role }) => {
44
- const { t } = (0, import_react_ui.useTranslation)(import_chunk_Q5XWEMHB.ASSISTANT_PLUGIN);
45
- const handleKindChange = (0, import_react.useCallback)((value) => {
46
- const kind = import_effect.Match.type().pipe(import_effect.Match.withReturnType(), import_effect.Match.when("always", () => ({
47
- include: "always"
48
- })), import_effect.Match.when("schema-matching", () => ({
49
- include: "schema-matching",
50
- typename: ""
51
- })), import_effect.Match.when("automatically", () => ({
52
- include: "automatically",
53
- description: ""
54
- })), import_effect.Match.orElse(() => ({
55
- include: "manual"
56
- })))(value);
57
- template.kind = kind;
58
- }, [
59
- template
60
- ]);
61
- const handleTypenameChange = (0, import_react.useCallback)((0, import_async.debounce)((event) => {
62
- if (template.kind.include === "schema-matching") {
63
- template.kind.typename = event.target.value;
64
- }
65
- }, 300), [
66
- template.kind.include
67
- ]);
68
- const handleDescriptionChange = (0, import_react.useCallback)((0, import_async.debounce)((event) => {
69
- if (template.kind.include === "automatically") {
70
- template.kind.description = event.target.value;
71
- }
72
- }, 300), [
73
- template.kind.include
74
- ]);
75
- return /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.StackItem.Content, {
76
- role,
77
- toolbar: true,
78
- classNames: "container-max-width"
79
- }, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Toolbar.Root, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Root, {
80
- value: template.kind.include,
81
- onValueChange: handleKindChange
82
- }, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Toolbar.Button, {
83
- asChild: true
84
- }, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.TriggerButton, null)), /* @__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, import_chunk_APRU3QWK.TemplateKinds.map((kind) => /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Option, {
85
- key: kind,
86
- value: kind
87
- }, kind)))))), template.kind.include === "schema-matching" && /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.Root, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.TextInput, {
88
- placeholder: t("typename placeholder"),
89
- defaultValue: template.kind.typename,
90
- onChange: handleTypenameChange
91
- })), template.kind.include === "automatically" && /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.Root, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.TextInput, {
92
- placeholder: t("description placeholder"),
93
- defaultValue: template.kind.description,
94
- onChange: handleDescriptionChange
95
- }))), /* @__PURE__ */ import_react.default.createElement(import_chunk_XI2ARIEO.TemplateEditor, {
96
- template
97
- }));
98
- };
99
- var TemplateContainer_default = TemplateContainer;
100
- // Annotate the CommonJS export names for ESM import in node:
101
- 0 && (module.exports = {
102
- TemplateContainer
103
- });
104
- //# sourceMappingURL=TemplateContainer-XWFYJB4T.cjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/components/TemplateContainer.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Match, type Schema as S } from 'effect';\nimport React, { type ChangeEvent, useCallback } from 'react';\n\nimport { debounce } from '@dxos/async';\nimport { Input, Select, Toolbar, useTranslation } from '@dxos/react-ui';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { TemplateEditor } from './TemplateEditor';\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { TemplateKinds, type TemplateKindSchema, type TemplateType } from '../types';\n\nexport const TemplateContainer = ({ template, role }: { template: TemplateType; role: string }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n\n const handleKindChange = useCallback(\n (value: string) => {\n const kind = Match.type<string>().pipe(\n Match.withReturnType<S.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 <StackItem.Content role={role} toolbar classNames='container-max-width'>\n {/* TODO(wittjosiah): Move this toolbar into c11y sidebar. */}\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 <TemplateEditor template={template} />\n </StackItem.Content>\n );\n};\n\nexport default TemplateContainer;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,oBAAwC;AACxC,mBAAqD;AAErD,mBAAyB;AACzB,sBAAuD;AACvD,4BAA0B;AAMnB,IAAMA,oBAAoB,CAAC,EAAEC,UAAUC,KAAI,MAA4C;AAC5F,QAAM,EAAEC,EAAC,QAAKC,gCAAeC,sCAAAA;AAE7B,QAAMC,uBAAmBC,0BACvB,CAACC,UAAAA;AACC,UAAMC,OAAOC,oBAAMC,KAAI,EAAWC,KAChCF,oBAAMG,eAAc,GACpBH,oBAAMI,KAAK,UAAU,OAAO;MAAEC,SAAS;IAAS,EAAA,GAChDL,oBAAMI,KAAK,mBAAmB,OAAO;MAAEC,SAAS;MAAmBC,UAAU;IAAG,EAAA,GAChFN,oBAAMI,KAAK,iBAAiB,OAAO;MAAEC,SAAS;MAAiBE,aAAa;IAAG,EAAA,GAC/EP,oBAAMQ,OAAO,OAAO;MAAEH,SAAS;IAAS,EAAA,CAAA,EACxCP,KAAAA;AAEFP,aAASQ,OAAOA;EAClB,GACA;IAACR;GAAS;AAGZ,QAAMkB,2BAAuBZ,8BAC3Ba,uBAAS,CAACC,UAAAA;AACR,QAAIpB,SAASQ,KAAKM,YAAY,mBAAmB;AAC/Cd,eAASQ,KAAKO,WAAWK,MAAMC,OAAOd;IACxC;EACF,GAAG,GAAA,GACH;IAACP,SAASQ,KAAKM;GAAQ;AAGzB,QAAMQ,8BAA0BhB,8BAC9Ba,uBAAS,CAACC,UAAAA;AACR,QAAIpB,SAASQ,KAAKM,YAAY,iBAAiB;AAC7Cd,eAASQ,KAAKQ,cAAcI,MAAMC,OAAOd;IAC3C;EACF,GAAG,GAAA,GACH;IAACP,SAASQ,KAAKM;GAAQ;AAGzB,SACE,6BAAAS,QAAA,cAACC,gCAAUC,SAAO;IAACxB;IAAYyB,SAAAA;IAAQC,YAAW;KAEhD,6BAAAJ,QAAA,cAACK,wBAAQC,MAAI,MACX,6BAAAN,QAAA,cAACO,uBAAOD,MAAI;IAACtB,OAAOP,SAASQ,KAAKM;IAASiB,eAAe1B;KACxD,6BAAAkB,QAAA,cAACK,wBAAQI,QAAM;IAACC,SAAAA;KACd,6BAAAV,QAAA,cAACO,uBAAOI,eAAa,IAAA,CAAA,GAEvB,6BAAAX,QAAA,cAACO,uBAAOK,QAAM,MACZ,6BAAAZ,QAAA,cAACO,uBAAOL,SAAO,MACb,6BAAAF,QAAA,cAACO,uBAAOM,UAAQ,MACbC,oCAAcC,IAAI,CAAC9B,SAClB,6BAAAe,QAAA,cAACO,uBAAOS,QAAM;IAACC,KAAKhC;IAAMD,OAAOC;KAC9BA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAOZR,SAASQ,KAAKM,YAAY,qBACzB,6BAAAS,QAAA,cAACkB,sBAAMZ,MAAI,MACT,6BAAAN,QAAA,cAACkB,sBAAMC,WAAS;IACdC,aAAazC,EAAE,sBAAA;IACf0C,cAAc5C,SAASQ,KAAKO;IAC5B8B,UAAU3B;OAIflB,SAASQ,KAAKM,YAAY,mBACzB,6BAAAS,QAAA,cAACkB,sBAAMZ,MAAI,MACT,6BAAAN,QAAA,cAACkB,sBAAMC,WAAS;IACdC,aAAazC,EAAE,yBAAA;IACf0C,cAAc5C,SAASQ,KAAKQ;IAC5B6B,UAAUvB;QAKlB,6BAAAC,QAAA,cAACuB,sCAAAA;IAAe9C;;AAGtB;AAEA,IAAA,4BAAeD;",
6
- "names": ["TemplateContainer", "template", "role", "t", "useTranslation", "ASSISTANT_PLUGIN", "handleKindChange", "useCallback", "value", "kind", "Match", "type", "pipe", "withReturnType", "when", "include", "typename", "description", "orElse", "handleTypenameChange", "debounce", "event", "target", "handleDescriptionChange", "React", "StackItem", "Content", "toolbar", "classNames", "Toolbar", "Root", "Select", "onValueChange", "Button", "asChild", "TriggerButton", "Portal", "Viewport", "TemplateKinds", "map", "Option", "key", "Input", "TextInput", "placeholder", "defaultValue", "onChange", "TemplateEditor"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/app-graph-builder.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n LayoutAction,\n type PromiseIntentDispatcher,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { invariant } from '@dxos/invariant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE } from '@dxos/plugin-deck/types';\nimport { createExtension, type Node, ROOT_ID } from '@dxos/plugin-graph';\nimport { memoizeQuery } from '@dxos/plugin-space';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport {\n type Space,\n Filter,\n fullyQualifiedId,\n getSpace,\n isSpace,\n isReactiveObject,\n parseId,\n} from '@dxos/react-client/echo';\n\nimport { ASSISTANT_DIALOG, ASSISTANT_PLUGIN } from '../meta';\nimport { AIChatType, AssistantAction, TemplateType } from '../types';\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: `${ASSISTANT_PLUGIN}/assistant`,\n filter: (node): node is Node<null> => node.id === ROOT_ID,\n actions: () => [\n {\n id: `${LayoutAction.UpdateDialog._tag}/assistant/open`,\n data: async () => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n const client = context.requestCapability(ClientCapabilities.Client);\n const layout = context.requestCapability(Capabilities.Layout);\n const { graph } = context.requestCapability(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.findNode(layout.active[0]);\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--star-four--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 }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/service-registry`,\n filter: (node): node is Node<null> => node.id === 'root',\n connector: ({ node }) => {\n const layout = context.requestCapability(Capabilities.Layout);\n const client = context.requestCapability(ClientCapabilities.Client);\n const { spaceId } = parseId(layout.workspace);\n const space = spaceId ? client.spaces.get(spaceId) : null;\n\n return [\n {\n id: [node.id, 'service-registry'].join(ATTENDABLE_PATH_SEPARATOR),\n type: DECK_COMPANION_TYPE,\n data: space,\n properties: {\n label: ['service registry label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--plugs--regular',\n disposition: 'hidden',\n },\n },\n ];\n },\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/object-chat-companion`,\n filter: (node): node is Node<AIChatType> =>\n isReactiveObject(node.data) && node.data.assistantChatQueue && node.data.type !== AIChatType.typename,\n connector: ({ node }) => [\n {\n id: [node.id, 'assistant-chat'].join(ATTENDABLE_PATH_SEPARATOR),\n type: PLANK_COMPANION_TYPE,\n data: 'assistant-chat',\n properties: {\n label: ['assistant chat label', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--star-four--regular',\n position: 'hoist',\n },\n },\n ],\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/root`,\n filter: (node): node is Node<Space> => isSpace(node.data),\n connector: ({ node }) => {\n const templates = memoizeQuery(node.data, Filter.schema(TemplateType));\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: node.data,\n },\n },\n ]\n : [];\n },\n }),\n\n createExtension({\n id: `${ASSISTANT_PLUGIN}/templates`,\n filter: (node): node is Node<null, { space: Space }> => node.id === `${ASSISTANT_PLUGIN}/templates`,\n connector: ({ node }) => {\n const templates = memoizeQuery(node.properties.space, Filter.schema(TemplateType));\n return templates\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 ?? ['template title placeholder', { ns: ASSISTANT_PLUGIN }],\n icon: 'ph--file-code--regular',\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.schema(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, { spaceId: space.id }));\n invariant(data?.object instanceof AIChatType);\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", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "ASSISTANT_PLUGIN", "filter", "node", "ROOT_ID", "actions", "LayoutAction", "UpdateDialog", "_tag", "data", "dispatchPromise", "dispatch", "requestCapability", "IntentDispatcher", "client", "ClientCapabilities", "Client", "layout", "Layout", "graph", "AppGraph", "chat", "active", "length", "findNode", "space", "getSpace", "getOrCreateChat", "spaces", "default", "createIntent", "part", "subject", "ASSISTANT_DIALOG", "options", "state", "blockAlign", "props", "properties", "label", "ns", "icon", "disposition", "position", "keyBinding", "macos", "windows", "connector", "spaceId", "parseId", "workspace", "get", "join", "ATTENDABLE_PATH_SEPARATOR", "type", "DECK_COMPANION_TYPE", "isReactiveObject", "assistantChatQueue", "AIChatType", "typename", "PLANK_COMPANION_TYPE", "isSpace", "templates", "memoizeQuery", "Filter", "schema", "TemplateType", "toSorted", "a", "b", "nameA", "name", "nameB", "localeCompare", "map", "template", "fullyQualifiedId", "objects", "db", "query", "run", "AssistantAction", "CreateChat", "invariant", "object", "SpaceAction", "AddObject", "target"]
7
- }
@@ -1,206 +0,0 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
- var chunk_APRU3QWK_exports = {};
20
- __export(chunk_APRU3QWK_exports, {
21
- AIChatType: () => AIChatType,
22
- ApiAuthorization: () => ApiAuthorization,
23
- AssistantAction: () => AssistantAction,
24
- AssistantSettingsSchema: () => AssistantSettingsSchema,
25
- ServiceType: () => ServiceType,
26
- TemplateInputSchema: () => TemplateInputSchema,
27
- TemplateInputType: () => TemplateInputType,
28
- TemplateKindSchema: () => TemplateKindSchema,
29
- TemplateKinds: () => TemplateKinds,
30
- TemplateType: () => TemplateType,
31
- categoryIcons: () => categoryIcons
32
- });
33
- module.exports = __toCommonJS(chunk_APRU3QWK_exports);
34
- var import_chunk_Q5XWEMHB = require("./chunk-Q5XWEMHB.cjs");
35
- var import_echo_schema = require("@dxos/echo-schema");
36
- var import_conductor = require("@dxos/conductor");
37
- var import_echo_schema2 = require("@dxos/echo-schema");
38
- var import_types = require("@dxos/functions/types");
39
- var import_echo_schema3 = require("@dxos/echo-schema");
40
- var import_echo_schema4 = require("@dxos/echo-schema");
41
- var AIChatType = class extends (0, import_echo_schema.TypedObject)({
42
- typename: "dxos.org/type/AIChat",
43
- version: "0.1.0"
44
- })({
45
- // TODO(wittjosiah): Should be a ref to a Queue.
46
- assistantChatQueue: (0, import_echo_schema.Ref)(import_echo_schema.Expando)
47
- }) {
48
- };
49
- var ApiAuthorizationKey = import_echo_schema2.S.Struct({
50
- type: import_echo_schema2.S.Literal("api-key"),
51
- key: import_echo_schema2.S.String,
52
- placement: import_echo_schema2.S.Union(import_echo_schema2.S.Struct({
53
- type: import_echo_schema2.S.Literal("authorization-header")
54
- }), import_echo_schema2.S.Struct({
55
- type: import_echo_schema2.S.Literal("query"),
56
- name: import_echo_schema2.S.String
57
- }))
58
- });
59
- var ApiAuthorizationOauth = import_echo_schema2.S.Struct({
60
- type: import_echo_schema2.S.Literal("oauth"),
61
- clientId: import_echo_schema2.S.String,
62
- clientSecret: import_echo_schema2.S.String,
63
- tokenUrl: import_echo_schema2.S.String,
64
- grantType: import_echo_schema2.S.String
65
- });
66
- var ApiAuthorization = import_echo_schema2.S.Union(ApiAuthorizationKey, ApiAuthorizationOauth);
67
- var ServiceInterfaceFunction = import_echo_schema2.S.Struct({
68
- kind: import_echo_schema2.S.Literal("function"),
69
- fn: (0, import_echo_schema2.Ref)(import_types.FunctionType)
70
- });
71
- var ServiceInterfaceWorkflow = import_echo_schema2.S.Struct({
72
- kind: import_echo_schema2.S.Literal("workflow"),
73
- workflow: (0, import_echo_schema2.Ref)(import_conductor.ComputeGraph)
74
- });
75
- var ServiceInterfaceApi = import_echo_schema2.S.Struct({
76
- kind: import_echo_schema2.S.Literal("api"),
77
- /**
78
- * URL to fetch the openapi schema.
79
- */
80
- schemaUrl: import_echo_schema2.S.optional(import_echo_schema2.S.String),
81
- /**
82
- * Inlined openapi schema.
83
- */
84
- schema: import_echo_schema2.S.optional(import_echo_schema2.S.Any),
85
- /**
86
- * Authorization configuration if required.
87
- */
88
- authorization: import_echo_schema2.S.optional(ApiAuthorization)
89
- });
90
- var ServiceInterface = import_echo_schema2.S.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);
91
- var ServiceType = class extends (0, import_echo_schema2.TypedObject)({
92
- typename: "dxos.org/type/ServiceType",
93
- version: "0.1.0"
94
- })({
95
- serviceId: import_echo_schema2.S.String,
96
- name: import_echo_schema2.S.optional(import_echo_schema2.S.String),
97
- description: import_echo_schema2.S.optional(import_echo_schema2.S.String),
98
- category: import_echo_schema2.S.optional(import_echo_schema2.S.String),
99
- enabled: import_echo_schema2.S.optional(import_echo_schema2.S.Boolean),
100
- /**
101
- * Entries exposed: functions, workflows, and APIs.
102
- */
103
- interfaces: import_echo_schema2.S.optional(import_echo_schema2.S.Array(ServiceInterface))
104
- }) {
105
- };
106
- var categoryIcons = {
107
- finance: "ph--bank--regular",
108
- health: "ph--heart--regular",
109
- geolocation: "ph--globe-simple--regular",
110
- education: "ph--books--regular",
111
- entertainment: "ph--music-notes--regular",
112
- shopping: "ph--shopping-cart--regular",
113
- travel: "ph--airplane-takeoff--regular",
114
- utilities: "ph--lightning--regular",
115
- weather: "ph--cloud-rain--regular"
116
- };
117
- var TemplateInputType;
118
- (function(TemplateInputType2) {
119
- TemplateInputType2[TemplateInputType2["VALUE"] = 0] = "VALUE";
120
- TemplateInputType2[TemplateInputType2["PASS_THROUGH"] = 1] = "PASS_THROUGH";
121
- TemplateInputType2[TemplateInputType2["RETRIEVER"] = 2] = "RETRIEVER";
122
- TemplateInputType2[TemplateInputType2["FUNCTION"] = 3] = "FUNCTION";
123
- TemplateInputType2[TemplateInputType2["QUERY"] = 4] = "QUERY";
124
- TemplateInputType2[TemplateInputType2["RESOLVER"] = 5] = "RESOLVER";
125
- TemplateInputType2[TemplateInputType2["CONTEXT"] = 6] = "CONTEXT";
126
- TemplateInputType2[TemplateInputType2["SCHEMA"] = 7] = "SCHEMA";
127
- })(TemplateInputType || (TemplateInputType = {}));
128
- var TemplateInputSchema = import_echo_schema3.S.mutable(import_echo_schema3.S.Struct({
129
- name: import_echo_schema3.S.String,
130
- type: import_echo_schema3.S.optional(import_echo_schema3.S.Enums(TemplateInputType)),
131
- value: import_echo_schema3.S.optional(import_echo_schema3.S.String)
132
- }));
133
- var TemplateKinds = [
134
- "always",
135
- "schema-matching",
136
- "automatically",
137
- "manual"
138
- ];
139
- var TemplateKindSchema = import_echo_schema3.S.Union(import_echo_schema3.S.Struct({
140
- include: import_echo_schema3.S.Literal("always")
141
- }), import_echo_schema3.S.Struct({
142
- include: import_echo_schema3.S.Literal("schema-matching"),
143
- typename: import_echo_schema3.S.String
144
- }), import_echo_schema3.S.Struct({
145
- include: import_echo_schema3.S.Literal("automatically"),
146
- description: import_echo_schema3.S.String
147
- }), import_echo_schema3.S.Struct({
148
- include: import_echo_schema3.S.Literal("manual")
149
- }));
150
- var TemplateType = class extends (0, import_echo_schema3.TypedObject)({
151
- typename: "dxos.org/type/Template",
152
- version: "0.1.0"
153
- })({
154
- name: import_echo_schema3.S.optional(import_echo_schema3.S.String),
155
- kind: import_echo_schema3.S.mutable(TemplateKindSchema),
156
- source: import_echo_schema3.S.String,
157
- inputs: import_echo_schema3.S.optional(import_echo_schema3.S.mutable(import_echo_schema3.S.Array(TemplateInputSchema))),
158
- command: import_echo_schema3.S.optional(import_echo_schema3.S.String)
159
- }) {
160
- };
161
- var AssistantAction;
162
- (function(AssistantAction2) {
163
- const ASSISTANT_ACTION = `${import_chunk_Q5XWEMHB.ASSISTANT_PLUGIN}/action`;
164
- class CreateChat extends import_echo_schema4.S.TaggedClass()(`${ASSISTANT_ACTION}/create-chat`, {
165
- input: import_echo_schema4.S.Struct({
166
- spaceId: import_echo_schema4.S.optional(import_echo_schema4.S.String),
167
- name: import_echo_schema4.S.optional(import_echo_schema4.S.String)
168
- }),
169
- output: import_echo_schema4.S.Struct({
170
- object: AIChatType
171
- })
172
- }) {
173
- }
174
- AssistantAction2.CreateChat = CreateChat;
175
- class CreateTemplate extends import_echo_schema4.S.TaggedClass()(`${ASSISTANT_ACTION}/create-template`, {
176
- input: import_echo_schema4.S.Struct({
177
- name: import_echo_schema4.S.optional(import_echo_schema4.S.String)
178
- }),
179
- output: import_echo_schema4.S.Struct({
180
- object: TemplateType
181
- })
182
- }) {
183
- }
184
- AssistantAction2.CreateTemplate = CreateTemplate;
185
- })(AssistantAction || (AssistantAction = {}));
186
- var AssistantSettingsSchema = import_echo_schema4.S.mutable(import_echo_schema4.S.Struct({
187
- llmProvider: import_echo_schema4.S.optional(import_echo_schema4.S.Literal("edge", "ollama")),
188
- edgeModel: import_echo_schema4.S.optional(import_echo_schema4.S.String),
189
- ollamaModel: import_echo_schema4.S.optional(import_echo_schema4.S.String),
190
- customPrompts: import_echo_schema4.S.optional(import_echo_schema4.S.Boolean)
191
- }));
192
- // Annotate the CommonJS export names for ESM import in node:
193
- 0 && (module.exports = {
194
- AIChatType,
195
- ApiAuthorization,
196
- AssistantAction,
197
- AssistantSettingsSchema,
198
- ServiceType,
199
- TemplateInputSchema,
200
- TemplateInputType,
201
- TemplateKindSchema,
202
- TemplateKinds,
203
- TemplateType,
204
- categoryIcons
205
- });
206
- //# sourceMappingURL=chunk-APRU3QWK.cjs.map
@@ -1,7 +0,0 @@
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 { Expando, Ref, TypedObject } from '@dxos/echo-schema';\n\nexport class AIChatType extends TypedObject({ typename: 'dxos.org/type/AIChat', version: '0.1.0' })({\n // TODO(wittjosiah): Should be a ref to a Queue.\n assistantChatQueue: Ref(Expando),\n}) {}\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { ComputeGraph } from '@dxos/conductor';\nimport { Ref, S, TypedObject, type Ref$ } from '@dxos/echo-schema';\nimport { FunctionType } from '@dxos/functions/types';\n\nconst ApiAuthorizationKey = S.Struct({\n type: S.Literal('api-key'),\n key: S.String,\n placement: S.Union(\n S.Struct({\n type: S.Literal('authorization-header'),\n }),\n S.Struct({\n type: S.Literal('query'),\n name: S.String,\n }),\n ),\n});\n\nconst ApiAuthorizationOauth = S.Struct({\n type: S.Literal('oauth'),\n clientId: S.String,\n clientSecret: S.String,\n tokenUrl: S.String,\n grantType: S.String,\n});\n\nexport const ApiAuthorization = S.Union(ApiAuthorizationKey, ApiAuthorizationOauth);\nexport type ApiAuthorization = S.Schema.Type<typeof ApiAuthorization>;\n\nconst ServiceInterfaceFunction = S.Struct({\n kind: S.Literal('function'),\n fn: Ref(FunctionType) as Ref$<FunctionType>,\n});\n\nconst ServiceInterfaceWorkflow = S.Struct({\n kind: S.Literal('workflow'),\n workflow: Ref(ComputeGraph) as Ref$<ComputeGraph>,\n});\n\nconst ServiceInterfaceApi = S.Struct({\n kind: S.Literal('api'),\n\n /**\n * URL to fetch the openapi schema.\n */\n schemaUrl: S.optional(S.String),\n\n /**\n * Inlined openapi schema.\n */\n schema: S.optional(S.Any),\n\n /**\n * Authorization configuration if required.\n */\n authorization: S.optional(ApiAuthorization),\n});\n\nconst ServiceInterface = S.Union(ServiceInterfaceFunction, ServiceInterfaceWorkflow, ServiceInterfaceApi);\nexport type ServiceInterface = S.Schema.Type<typeof ServiceInterface>;\n\nexport class ServiceType extends TypedObject({ typename: 'dxos.org/type/ServiceType', version: '0.1.0' })({\n serviceId: S.String,\n name: S.optional(S.String),\n description: S.optional(S.String),\n category: S.optional(S.String),\n enabled: S.optional(S.Boolean),\n\n /**\n * Entries exposed: functions, workflows, and APIs.\n */\n interfaces: S.optional(S.Array(ServiceInterface)),\n}) {}\n\n//\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 { S, TypedObject } from '@dxos/echo-schema';\n\n// TODO(burdon): Change to S.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 = S.mutable(\n S.Struct({\n name: S.String,\n type: S.optional(S.Enums(TemplateInputType)),\n value: S.optional(S.String),\n }),\n);\n\nexport type TemplateInput = S.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 = S.Union(\n S.Struct({\n include: S.Literal('always'),\n }),\n S.Struct({\n include: S.Literal('schema-matching'),\n typename: S.String,\n }),\n S.Struct({\n include: S.Literal('automatically'),\n description: S.String,\n }),\n S.Struct({\n include: S.Literal('manual'),\n }),\n);\n\nexport type TemplateKindType = S.Schema.Type<typeof TemplateKindSchema>;\nexport class TemplateType extends TypedObject({ typename: 'dxos.org/type/Template', version: '0.1.0' })({\n name: S.optional(S.String),\n kind: S.mutable(TemplateKindSchema),\n source: S.String,\n inputs: S.optional(S.mutable(S.Array(TemplateInputSchema))),\n command: S.optional(S.String),\n}) {}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { S } from '@dxos/echo-schema';\n\nimport { AIChatType } from './chat';\nimport { TemplateType } from './template';\nimport { ASSISTANT_PLUGIN } from '../meta';\n\nexport namespace AssistantAction {\n const ASSISTANT_ACTION = `${ASSISTANT_PLUGIN}/action`;\n\n export class CreateChat extends S.TaggedClass<CreateChat>()(`${ASSISTANT_ACTION}/create-chat`, {\n input: S.Struct({\n spaceId: S.optional(S.String),\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: AIChatType,\n }),\n }) {}\n\n export class CreateTemplate extends S.TaggedClass<CreateTemplate>()(`${ASSISTANT_ACTION}/create-template`, {\n input: S.Struct({\n name: S.optional(S.String),\n }),\n output: S.Struct({\n object: TemplateType,\n }),\n }) {}\n}\n\nexport const AssistantSettingsSchema = S.mutable(\n S.Struct({\n llmProvider: S.optional(S.Literal('edge', 'ollama')),\n edgeModel: S.optional(S.String),\n ollamaModel: S.optional(S.String),\n customPrompts: S.optional(S.Boolean),\n }),\n);\n\nexport type AssistantSettingsProps = S.Schema.Type<typeof AssistantSettingsSchema>;\n"],
5
- "mappings": "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",
6
- "names": ["import_echo_schema", "AIChatType", "TypedObject", "typename", "version", "assistantChatQueue", "Ref", "Expando", "ApiAuthorizationKey", "S", "Struct", "type", "Literal", "key", "String", "placement", "Union", "name", "ApiAuthorizationOauth", "clientId", "clientSecret", "tokenUrl", "grantType", "ApiAuthorization", "ServiceInterfaceFunction", "kind", "fn", "FunctionType", "ServiceInterfaceWorkflow", "workflow", "ComputeGraph", "ServiceInterfaceApi", "schemaUrl", "optional", "schema", "Any", "authorization", "ServiceInterface", "ServiceType", "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", "source", "inputs", "command", "AssistantAction", "ASSISTANT_ACTION", "ASSISTANT_PLUGIN", "CreateChat", "TaggedClass", "input", "spaceId", "output", "object", "CreateTemplate", "AssistantSettingsSchema", "llmProvider", "edgeModel", "ollamaModel", "customPrompts"]
7
- }