@dxos/plugin-assistant 0.8.1 → 0.8.2-main.f081794
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.
- package/dist/lib/browser/{AssistantDialog-YSHMAHW5.mjs → AssistantDialog-77B4BSXR.mjs} +2 -2
- package/dist/lib/browser/{ChatContainer-V5GP7DYF.mjs → ChatContainer-4AMJKO3T.mjs} +2 -2
- package/dist/lib/browser/ChatContainer-4AMJKO3T.mjs.map +7 -0
- package/dist/lib/browser/TemplateContainer-WKU5XFSO.mjs +22 -0
- package/dist/lib/browser/TemplateContainer-WKU5XFSO.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-MF5EVDWW.mjs → app-graph-builder-GU6ZWSP4.mjs} +7 -7
- package/dist/lib/browser/app-graph-builder-GU6ZWSP4.mjs.map +7 -0
- package/dist/lib/browser/{chunk-FMB7RGMP.mjs → chunk-FQ4L5NYW.mjs} +43 -18
- package/dist/lib/browser/{chunk-FMB7RGMP.mjs.map → chunk-FQ4L5NYW.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-KYMKVE6M.mjs → chunk-SBFJKCVU.mjs} +78 -18
- package/dist/lib/browser/chunk-SBFJKCVU.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +8 -5
- package/dist/lib/browser/index.mjs.map +2 -2
- package/dist/lib/browser/{intent-resolver-WJGLKKVO.mjs → intent-resolver-YAQELTFQ.mjs} +4 -4
- package/dist/lib/browser/intent-resolver-YAQELTFQ.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-57VRDOQT.mjs → react-surface-JOATHBJ4.mjs} +17 -8
- package/dist/lib/browser/react-surface-JOATHBJ4.mjs.map +7 -0
- package/dist/lib/browser/{settings-U6UFQX32.mjs → settings-PAJLJEVW.mjs} +3 -3
- package/dist/lib/browser/settings-PAJLJEVW.mjs.map +7 -0
- package/dist/lib/node/{AssistantDialog-YI2BSGSX.cjs → AssistantDialog-7V7RRSIL.cjs} +6 -6
- package/dist/lib/node/{ChatContainer-ZJ5JXF6A.cjs → ChatContainer-UWYNOALW.cjs} +6 -6
- package/dist/lib/node/ChatContainer-UWYNOALW.cjs.map +7 -0
- package/dist/lib/node/TemplateContainer-EQXKHWTF.cjs +52 -0
- package/dist/lib/node/TemplateContainer-EQXKHWTF.cjs.map +7 -0
- package/dist/lib/node/{app-graph-builder-N5ZUUI2Z.cjs → app-graph-builder-CEMLCKAF.cjs} +8 -8
- package/dist/lib/node/app-graph-builder-CEMLCKAF.cjs.map +7 -0
- package/dist/lib/node/{chunk-RPBKMP2E.cjs → chunk-ENBPNIJZ.cjs} +57 -32
- package/dist/lib/node/chunk-ENBPNIJZ.cjs.map +7 -0
- package/dist/lib/node/{chunk-ZKOC4ZFY.cjs → chunk-KWBQ5P7D.cjs} +81 -23
- package/dist/lib/node/chunk-KWBQ5P7D.cjs.map +7 -0
- package/dist/lib/node/index.cjs +22 -19
- package/dist/lib/node/index.cjs.map +2 -2
- package/dist/lib/node/{intent-resolver-R3OSTIMH.cjs → intent-resolver-RNMYSJ3E.cjs} +6 -6
- package/dist/lib/node/intent-resolver-RNMYSJ3E.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-NUQTM6MS.cjs → react-surface-7RIXMLMN.cjs} +23 -15
- package/dist/lib/node/react-surface-7RIXMLMN.cjs.map +7 -0
- package/dist/lib/node/{settings-TXGRCYAL.cjs → settings-JBEYMZ4S.cjs} +5 -5
- package/dist/lib/node/settings-JBEYMZ4S.cjs.map +7 -0
- package/dist/lib/node-esm/{AssistantDialog-U2FQX5TD.mjs → AssistantDialog-N24M73FW.mjs} +2 -2
- package/dist/lib/node-esm/{ChatContainer-QW3OOXTT.mjs → ChatContainer-KPWY5UK4.mjs} +2 -2
- package/dist/lib/node-esm/ChatContainer-KPWY5UK4.mjs.map +7 -0
- package/dist/lib/node-esm/TemplateContainer-3LEBT5ZC.mjs +23 -0
- package/dist/lib/node-esm/TemplateContainer-3LEBT5ZC.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-DWBNIMHM.mjs → app-graph-builder-Y45WYAWL.mjs} +7 -7
- package/dist/lib/node-esm/app-graph-builder-Y45WYAWL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-MVDAY3CZ.mjs → chunk-JE47GNTB.mjs} +43 -18
- package/dist/lib/node-esm/{chunk-MVDAY3CZ.mjs.map → chunk-JE47GNTB.mjs.map} +3 -3
- package/dist/lib/node-esm/{chunk-GBBXIW5F.mjs → chunk-PFWTW22U.mjs} +78 -18
- package/dist/lib/node-esm/chunk-PFWTW22U.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +8 -5
- package/dist/lib/node-esm/index.mjs.map +2 -2
- package/dist/lib/node-esm/{intent-resolver-H32TL4X6.mjs → intent-resolver-V2ZFI5C4.mjs} +4 -4
- package/dist/lib/node-esm/intent-resolver-V2ZFI5C4.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-JBVZF6CP.mjs → react-surface-UUHNOYST.mjs} +17 -8
- package/dist/lib/node-esm/react-surface-UUHNOYST.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-DZU5PNXM.mjs → settings-KAMA6RIY.mjs} +3 -3
- package/dist/lib/node-esm/settings-KAMA6RIY.mjs.map +7 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer.d.ts +4 -3
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/PromptSettings.d.ts +6 -0
- package/dist/types/src/components/PromptSettings.d.ts.map +1 -0
- package/dist/types/src/components/TemplateContainer.d.ts.map +1 -1
- package/dist/types/src/components/Thread/ThreadContainer.d.ts.map +1 -1
- package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -5
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/hooks/processor.d.ts.map +1 -1
- package/dist/types/src/hooks/useMessageQueue.d.ts +0 -3
- package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +3 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/package.json +57 -57
- package/src/capabilities/app-graph-builder.ts +5 -13
- package/src/capabilities/intent-resolver.ts +3 -3
- package/src/capabilities/react-surface.tsx +20 -5
- package/src/capabilities/settings.ts +2 -2
- package/src/components/ChatContainer.tsx +6 -8
- package/src/components/PromptSettings.tsx +91 -0
- package/src/components/TemplateContainer.tsx +3 -79
- package/src/components/TemplateEditor/TemplateEditor.stories.tsx +2 -2
- package/src/components/TemplateEditor/TemplateForm.stories.tsx +2 -2
- package/src/components/Thread/ThreadContainer.stories.tsx +9 -18
- package/src/components/Thread/ThreadContainer.tsx +24 -2
- package/src/components/Toolbox/Toolbox.stories.tsx +1 -1
- package/src/components/index.ts +1 -0
- package/src/hooks/processor.ts +1 -2
- package/src/hooks/useChatProcessor.tsx +1 -1
- package/src/testing/test-services.ts +6 -6
- package/src/translations.ts +4 -3
- package/dist/lib/browser/ChatContainer-V5GP7DYF.mjs.map +0 -7
- package/dist/lib/browser/TemplateContainer-K4EJNGIL.mjs +0 -78
- package/dist/lib/browser/TemplateContainer-K4EJNGIL.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-MF5EVDWW.mjs.map +0 -7
- package/dist/lib/browser/chunk-KYMKVE6M.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-WJGLKKVO.mjs.map +0 -7
- package/dist/lib/browser/react-surface-57VRDOQT.mjs.map +0 -7
- package/dist/lib/browser/settings-U6UFQX32.mjs.map +0 -7
- package/dist/lib/node/ChatContainer-ZJ5JXF6A.cjs.map +0 -7
- package/dist/lib/node/TemplateContainer-XWFYJB4T.cjs +0 -104
- package/dist/lib/node/TemplateContainer-XWFYJB4T.cjs.map +0 -7
- package/dist/lib/node/app-graph-builder-N5ZUUI2Z.cjs.map +0 -7
- package/dist/lib/node/chunk-RPBKMP2E.cjs.map +0 -7
- package/dist/lib/node/chunk-ZKOC4ZFY.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-R3OSTIMH.cjs.map +0 -7
- package/dist/lib/node/react-surface-NUQTM6MS.cjs.map +0 -7
- package/dist/lib/node/settings-TXGRCYAL.cjs.map +0 -7
- package/dist/lib/node-esm/ChatContainer-QW3OOXTT.mjs.map +0 -7
- package/dist/lib/node-esm/TemplateContainer-EUM2X65J.mjs +0 -79
- package/dist/lib/node-esm/TemplateContainer-EUM2X65J.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-DWBNIMHM.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GBBXIW5F.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-H32TL4X6.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-JBVZF6CP.mjs.map +0 -7
- package/dist/lib/node-esm/settings-DZU5PNXM.mjs.map +0 -7
- /package/dist/lib/browser/{AssistantDialog-YSHMAHW5.mjs.map → AssistantDialog-77B4BSXR.mjs.map} +0 -0
- /package/dist/lib/node/{AssistantDialog-YI2BSGSX.cjs.map → AssistantDialog-7V7RRSIL.cjs.map} +0 -0
- /package/dist/lib/node-esm/{AssistantDialog-U2FQX5TD.mjs.map → AssistantDialog-N24M73FW.mjs.map} +0 -0
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
|
|
2
2
|
import {
|
|
3
3
|
useServices
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-JE47GNTB.mjs";
|
|
5
5
|
import {
|
|
6
6
|
ServiceType,
|
|
7
|
+
TemplateKinds,
|
|
7
8
|
categoryIcons
|
|
8
9
|
} from "./chunk-MXK2EANZ.mjs";
|
|
9
10
|
import {
|
|
@@ -59,11 +60,69 @@ var AssistantSettings = ({ settings }) => {
|
|
|
59
60
|
}, model))))))));
|
|
60
61
|
};
|
|
61
62
|
|
|
63
|
+
// packages/plugins/plugin-assistant/src/components/PromptSettings.tsx
|
|
64
|
+
import { Match } from "effect";
|
|
65
|
+
import React2, { useCallback } from "react";
|
|
66
|
+
import { debounce } from "@dxos/async";
|
|
67
|
+
import { Input as Input2, Select as Select2, Toolbar, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
68
|
+
var PromptSettings = ({ template }) => {
|
|
69
|
+
const { t } = useTranslation2(ASSISTANT_PLUGIN);
|
|
70
|
+
const handleKindChange = useCallback((value) => {
|
|
71
|
+
const kind = Match.type().pipe(Match.withReturnType(), Match.when("always", () => ({
|
|
72
|
+
include: "always"
|
|
73
|
+
})), Match.when("schema-matching", () => ({
|
|
74
|
+
include: "schema-matching",
|
|
75
|
+
typename: ""
|
|
76
|
+
})), Match.when("automatically", () => ({
|
|
77
|
+
include: "automatically",
|
|
78
|
+
description: ""
|
|
79
|
+
})), Match.orElse(() => ({
|
|
80
|
+
include: "manual"
|
|
81
|
+
})))(value);
|
|
82
|
+
template.kind = kind;
|
|
83
|
+
}, [
|
|
84
|
+
template
|
|
85
|
+
]);
|
|
86
|
+
const handleTypenameChange = useCallback(debounce((event) => {
|
|
87
|
+
if (template.kind.include === "schema-matching") {
|
|
88
|
+
template.kind.typename = event.target.value;
|
|
89
|
+
}
|
|
90
|
+
}, 300), [
|
|
91
|
+
template.kind.include
|
|
92
|
+
]);
|
|
93
|
+
const handleDescriptionChange = useCallback(debounce((event) => {
|
|
94
|
+
if (template.kind.include === "automatically") {
|
|
95
|
+
template.kind.description = event.target.value;
|
|
96
|
+
}
|
|
97
|
+
}, 300), [
|
|
98
|
+
template.kind.include
|
|
99
|
+
]);
|
|
100
|
+
return /* @__PURE__ */ React2.createElement("div", {
|
|
101
|
+
className: "p-2 flex flex-col gap-4"
|
|
102
|
+
}, /* @__PURE__ */ React2.createElement("h2", null, t("prompt rules label")), /* @__PURE__ */ React2.createElement(Toolbar.Root, null, /* @__PURE__ */ React2.createElement(Select2.Root, {
|
|
103
|
+
value: template.kind.include,
|
|
104
|
+
onValueChange: handleKindChange
|
|
105
|
+
}, /* @__PURE__ */ React2.createElement(Toolbar.Button, {
|
|
106
|
+
asChild: true
|
|
107
|
+
}, /* @__PURE__ */ React2.createElement(Select2.TriggerButton, null)), /* @__PURE__ */ React2.createElement(Select2.Portal, null, /* @__PURE__ */ React2.createElement(Select2.Content, null, /* @__PURE__ */ React2.createElement(Select2.Viewport, null, TemplateKinds.map((kind) => /* @__PURE__ */ React2.createElement(Select2.Option, {
|
|
108
|
+
key: kind,
|
|
109
|
+
value: kind
|
|
110
|
+
}, kind)))))), template.kind.include === "schema-matching" && /* @__PURE__ */ React2.createElement(Input2.Root, null, /* @__PURE__ */ React2.createElement(Input2.TextInput, {
|
|
111
|
+
placeholder: t("typename placeholder"),
|
|
112
|
+
defaultValue: template.kind.typename,
|
|
113
|
+
onChange: handleTypenameChange
|
|
114
|
+
})), template.kind.include === "automatically" && /* @__PURE__ */ React2.createElement(Input2.Root, null, /* @__PURE__ */ React2.createElement(Input2.TextInput, {
|
|
115
|
+
placeholder: t("description placeholder"),
|
|
116
|
+
defaultValue: template.kind.description,
|
|
117
|
+
onChange: handleDescriptionChange
|
|
118
|
+
}))));
|
|
119
|
+
};
|
|
120
|
+
|
|
62
121
|
// packages/plugins/plugin-assistant/src/components/ServiceRegistry/ServiceRegistry.tsx
|
|
63
|
-
import
|
|
122
|
+
import React3, { useMemo } from "react";
|
|
64
123
|
import { Filter } from "@dxos/client/echo";
|
|
65
124
|
import { useQuery } from "@dxos/react-client/echo";
|
|
66
|
-
import { Icon, Input as
|
|
125
|
+
import { Icon, Input as Input3, List, ListItem } from "@dxos/react-ui";
|
|
67
126
|
var ServiceRegistry = ({ space }) => {
|
|
68
127
|
const matchingServices = useServices(space);
|
|
69
128
|
const enabledServices = useQuery(space, Filter.schema(ServiceType));
|
|
@@ -80,9 +139,9 @@ var ServiceRegistry = ({ space }) => {
|
|
|
80
139
|
space.db.remove(service);
|
|
81
140
|
}
|
|
82
141
|
};
|
|
83
|
-
return /* @__PURE__ */
|
|
142
|
+
return /* @__PURE__ */ React3.createElement(List, {
|
|
84
143
|
classNames: "h-full grid auto-rows-[5rem] gap-2 p-2 pis-2 pie-2 overflow-y-auto scrollbar-thin"
|
|
85
|
-
}, services.map((service) => /* @__PURE__ */
|
|
144
|
+
}, services.map((service) => /* @__PURE__ */ React3.createElement(ServiceItem, {
|
|
86
145
|
key: service.serviceId,
|
|
87
146
|
service,
|
|
88
147
|
enabled: service.enabled,
|
|
@@ -90,40 +149,41 @@ var ServiceRegistry = ({ space }) => {
|
|
|
90
149
|
})));
|
|
91
150
|
};
|
|
92
151
|
var ServiceItem = ({ service, enabled, setEnabled }) => {
|
|
93
|
-
return /* @__PURE__ */
|
|
152
|
+
return /* @__PURE__ */ React3.createElement(ListItem.Root, {
|
|
94
153
|
classNames: "flex flex-col gap-1 p-1 overflow-hidden rounded-md border border-separator"
|
|
95
|
-
}, /* @__PURE__ */
|
|
154
|
+
}, /* @__PURE__ */ React3.createElement("div", {
|
|
96
155
|
className: "grid grid-cols-[40px_1fr_40px]"
|
|
97
|
-
}, /* @__PURE__ */
|
|
156
|
+
}, /* @__PURE__ */ React3.createElement("div", {
|
|
98
157
|
className: "flex gow justify-center items-center"
|
|
99
|
-
}, /* @__PURE__ */
|
|
158
|
+
}, /* @__PURE__ */ React3.createElement(Icon, {
|
|
100
159
|
icon: categoryIcons[service.category ?? "default"] ?? "ph--placeholder--regular",
|
|
101
160
|
size: 6
|
|
102
|
-
})), /* @__PURE__ */
|
|
161
|
+
})), /* @__PURE__ */ React3.createElement("div", {
|
|
103
162
|
className: "grow items-center truncate mie-2"
|
|
104
|
-
}, service.name), /* @__PURE__ */
|
|
163
|
+
}, service.name), /* @__PURE__ */ React3.createElement("div", {
|
|
105
164
|
className: "flex gow justify-center items-center"
|
|
106
|
-
}, /* @__PURE__ */
|
|
165
|
+
}, /* @__PURE__ */ React3.createElement(Input3.Root, null, /* @__PURE__ */ React3.createElement(Input3.Switch, {
|
|
107
166
|
checked: enabled,
|
|
108
167
|
onClick: () => setEnabled?.(!enabled)
|
|
109
|
-
})))), /* @__PURE__ */
|
|
168
|
+
})))), /* @__PURE__ */ React3.createElement("div", {
|
|
110
169
|
className: "grid grid-cols-[40px_1fr]"
|
|
111
|
-
}, /* @__PURE__ */
|
|
170
|
+
}, /* @__PURE__ */ React3.createElement("div", null), /* @__PURE__ */ React3.createElement("div", {
|
|
112
171
|
className: "text-sm text-subdued line-clamp-2 mie-1"
|
|
113
172
|
}, service.description)));
|
|
114
173
|
};
|
|
115
174
|
|
|
116
175
|
// packages/plugins/plugin-assistant/src/components/index.ts
|
|
117
176
|
import { lazy } from "react";
|
|
118
|
-
var AssistantDialog = lazy(() => import("./AssistantDialog-
|
|
119
|
-
var ChatContainer = lazy(() => import("./ChatContainer-
|
|
120
|
-
var TemplateContainer = lazy(() => import("./TemplateContainer-
|
|
177
|
+
var AssistantDialog = lazy(() => import("./AssistantDialog-N24M73FW.mjs"));
|
|
178
|
+
var ChatContainer = lazy(() => import("./ChatContainer-KPWY5UK4.mjs"));
|
|
179
|
+
var TemplateContainer = lazy(() => import("./TemplateContainer-3LEBT5ZC.mjs"));
|
|
121
180
|
|
|
122
181
|
export {
|
|
123
182
|
AssistantSettings,
|
|
183
|
+
PromptSettings,
|
|
124
184
|
ServiceRegistry,
|
|
125
185
|
AssistantDialog,
|
|
126
186
|
ChatContainer,
|
|
127
187
|
TemplateContainer
|
|
128
188
|
};
|
|
129
|
-
//# sourceMappingURL=chunk-
|
|
189
|
+
//# sourceMappingURL=chunk-PFWTW22U.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/AssistantSettings/AssistantSettings.tsx", "../../../src/components/PromptSettings.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 { 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';\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<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 <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 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 './PromptSettings';\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", "Match", "React", "useCallback", "debounce", "Input", "Select", "Toolbar", "useTranslation", "PromptSettings", "template", "t", "useTranslation", "ASSISTANT_PLUGIN", "handleKindChange", "useCallback", "value", "kind", "Match", "type", "pipe", "withReturnType", "when", "include", "typename", "description", "orElse", "handleTypenameChange", "debounce", "event", "target", "handleDescriptionChange", "React", "div", "className", "h2", "Toolbar", "Root", "Select", "onValueChange", "Button", "asChild", "TriggerButton", "Portal", "Content", "Viewport", "TemplateKinds", "map", "Option", "key", "Input", "TextInput", "placeholder", "defaultValue", "onChange", "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
|
+
}
|
|
@@ -3,9 +3,10 @@ import {
|
|
|
3
3
|
AssistantDialog,
|
|
4
4
|
AssistantSettings,
|
|
5
5
|
ChatContainer,
|
|
6
|
+
PromptSettings,
|
|
6
7
|
ServiceRegistry,
|
|
7
8
|
TemplateContainer
|
|
8
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-PFWTW22U.mjs";
|
|
9
10
|
import {
|
|
10
11
|
TemplateEditor,
|
|
11
12
|
handlebarsHighlightStyle
|
|
@@ -20,7 +21,7 @@ import {
|
|
|
20
21
|
ThreadContainer,
|
|
21
22
|
Toolbox,
|
|
22
23
|
ToolboxContainer
|
|
23
|
-
} from "./chunk-
|
|
24
|
+
} from "./chunk-JE47GNTB.mjs";
|
|
24
25
|
import "./chunk-6JK5HEUQ.mjs";
|
|
25
26
|
import {
|
|
26
27
|
AIChatType,
|
|
@@ -52,7 +53,7 @@ var translations_default = [
|
|
|
52
53
|
{
|
|
53
54
|
"en-US": {
|
|
54
55
|
[AIChatType.typename]: {
|
|
55
|
-
"typename label": "
|
|
56
|
+
"typename label": "Assistant",
|
|
56
57
|
"object name placeholder": "AI Chat"
|
|
57
58
|
},
|
|
58
59
|
[TemplateType.typename]: {
|
|
@@ -61,8 +62,8 @@ var translations_default = [
|
|
|
61
62
|
},
|
|
62
63
|
[ASSISTANT_PLUGIN]: {
|
|
63
64
|
"templates label": "Templates",
|
|
64
|
-
"open ambient chat label": "Open
|
|
65
|
-
"assistant chat label": "
|
|
65
|
+
"open ambient chat label": "Open Assistant",
|
|
66
|
+
"assistant chat label": "Assistant",
|
|
66
67
|
"plugin name": "Assistant",
|
|
67
68
|
"object placeholder": "New prompt",
|
|
68
69
|
"create object label": "Create prompt",
|
|
@@ -71,6 +72,7 @@ var translations_default = [
|
|
|
71
72
|
"command placeholder": "Enter slash command...",
|
|
72
73
|
"template placeholder": "Enter template...",
|
|
73
74
|
"value placeholder": "Enter value...",
|
|
75
|
+
"prompt rules label": "Prompt Rules",
|
|
74
76
|
"typename placeholder": "Enter typename of objects which this template is for",
|
|
75
77
|
"description placeholder": "Enter description of when this template should be used",
|
|
76
78
|
"select preset template placeholder": "Select preset",
|
|
@@ -183,6 +185,7 @@ export {
|
|
|
183
185
|
AssistantSettings,
|
|
184
186
|
AssistantSettingsSchema,
|
|
185
187
|
ChatContainer,
|
|
188
|
+
PromptSettings,
|
|
186
189
|
ServiceRegistry,
|
|
187
190
|
ServiceType,
|
|
188
191
|
TemplateContainer,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/AssistantPlugin.tsx", "../../../src/translations.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n allOf,\n Capabilities,\n contributes,\n createIntent,\n defineModule,\n definePlugin,\n Events,\n} from '@dxos/app-framework';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\n\nimport { AiClient, AppGraphBuilder, IntentResolver, ReactSurface, AssistantSettings } from './capabilities';\nimport { meta } from './meta';\nimport translations from './translations';\nimport { AssistantAction, AIChatType, ServiceType, TemplateType } from './types';\n\nexport const AssistantPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: AssistantSettings,\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: TemplateType.typename,\n metadata: {\n icon: 'ph--code-block--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: AIChatType.typename,\n metadata: {\n icon: 'ph--atom--regular',\n },\n }),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => [\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: AIChatType,\n getIntent: (_, options) => createIntent(AssistantAction.CreateChat, { spaceId: options.space.id }),\n }),\n ),\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: TemplateType,\n hidden: true,\n getIntent: () => createIntent(AssistantAction.CreateTemplate),\n }),\n ),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [ServiceType, TemplateType]),\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the chat is loaded when surfaces activation is more granular.\n activatesBefore: [Events.SetupArtifactDefinition],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/ai-client`,\n activatesOn: allOf(ClientEvents.ClientReady, Events.SettingsReady),\n activate: AiClient,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ASSISTANT_PLUGIN } from './meta';\nimport { AIChatType, TemplateType } from './types';\n\nexport default [\n {\n 'en-US': {\n [AIChatType.typename]: {\n 'typename label': '
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport {\n allOf,\n Capabilities,\n contributes,\n createIntent,\n defineModule,\n definePlugin,\n Events,\n} from '@dxos/app-framework';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\nimport { SpaceCapabilities } from '@dxos/plugin-space';\nimport { defineObjectForm } from '@dxos/plugin-space/types';\n\nimport { AiClient, AppGraphBuilder, IntentResolver, ReactSurface, AssistantSettings } from './capabilities';\nimport { meta } from './meta';\nimport translations from './translations';\nimport { AssistantAction, AIChatType, ServiceType, TemplateType } from './types';\n\nexport const AssistantPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/settings`,\n activatesOn: Events.SetupSettings,\n activate: AssistantSettings,\n }),\n defineModule({\n id: `${meta.id}/module/metadata`,\n activatesOn: Events.SetupMetadata,\n activate: () => [\n contributes(Capabilities.Metadata, {\n id: TemplateType.typename,\n metadata: {\n icon: 'ph--code-block--regular',\n },\n }),\n contributes(Capabilities.Metadata, {\n id: AIChatType.typename,\n metadata: {\n icon: 'ph--atom--regular',\n },\n }),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/object-form`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => [\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: AIChatType,\n getIntent: (_, options) => createIntent(AssistantAction.CreateChat, { spaceId: options.space.id }),\n }),\n ),\n contributes(\n SpaceCapabilities.ObjectForm,\n defineObjectForm({\n objectSchema: TemplateType,\n hidden: true,\n getIntent: () => createIntent(AssistantAction.CreateTemplate),\n }),\n ),\n ],\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [ServiceType, TemplateType]),\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n // TODO(wittjosiah): Should occur before the chat is loaded when surfaces activation is more granular.\n activatesBefore: [Events.SetupArtifactDefinition],\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/ai-client`,\n activatesOn: allOf(ClientEvents.ClientReady, Events.SettingsReady),\n activate: AiClient,\n }),\n ]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { ASSISTANT_PLUGIN } from './meta';\nimport { AIChatType, TemplateType } from './types';\n\nexport default [\n {\n 'en-US': {\n [AIChatType.typename]: {\n 'typename label': 'Assistant',\n 'object name placeholder': 'AI Chat',\n },\n [TemplateType.typename]: {\n 'typename label': 'Template',\n 'object name placeholder': 'New template',\n },\n [ASSISTANT_PLUGIN]: {\n 'templates label': 'Templates',\n\n 'open ambient chat label': 'Open Assistant',\n 'assistant chat label': 'Assistant',\n 'plugin name': 'Assistant',\n 'object placeholder': 'New prompt',\n 'create object label': 'Create prompt',\n 'create trigger label': 'Create trigger',\n 'create stack section label': 'Create prompt',\n 'command placeholder': 'Enter slash command...',\n 'template placeholder': 'Enter template...',\n 'value placeholder': 'Enter value...',\n 'prompt rules label': 'Prompt Rules',\n 'typename placeholder': 'Enter typename of objects which this template is for',\n 'description placeholder': 'Enter description of when this template should be used',\n 'select preset template placeholder': 'Select preset',\n 'service registry label': 'Service Registry',\n\n 'assistant dialog title': 'Assistant',\n 'open assistant label': 'Open assistant',\n\n 'chat input placeholder': 'Ask a question...',\n 'chat stop': 'Cancel request.',\n\n 'prompt placeholder': 'Ask a question...',\n 'microphone button': 'Click to speak',\n 'cancel processing button': 'Stop processing',\n\n 'settings default label': 'Default',\n 'settings custom prompts label': 'Use custom prompts',\n 'settings llm provider label': 'Enable Ollama integration',\n 'settings edge llm model label': 'Remote language model',\n 'settings ollama llm model label': 'Ollama language model',\n },\n },\n },\n];\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["allOf", "Capabilities", "contributes", "createIntent", "defineModule", "definePlugin", "Events", "ClientCapabilities", "ClientEvents", "SpaceCapabilities", "defineObjectForm", "AIChatType", "typename", "TemplateType", "ASSISTANT_PLUGIN", "AssistantPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "SetupSettings", "AssistantSettings", "SetupMetadata", "Metadata", "TemplateType", "typename", "metadata", "icon", "AIChatType", "ClientEvents", "SetupSchema", "SpaceCapabilities", "ObjectForm", "defineObjectForm", "objectSchema", "getIntent", "_", "options", "createIntent", "AssistantAction", "CreateChat", "spaceId", "space", "hidden", "CreateTemplate", "ClientCapabilities", "Schema", "ServiceType", "SetupAppGraph", "AppGraphBuilder", "SetupIntentResolver", "IntentResolver", "SetupReactSurface", "activatesBefore", "SetupArtifactDefinition", "ReactSurface", "allOf", "ClientReady", "SettingsReady", "AiClient"]
|
|
7
7
|
}
|
|
@@ -10,13 +10,13 @@ import "./chunk-ECRK6TUQ.mjs";
|
|
|
10
10
|
import { Capabilities, contributes, createResolver } from "@dxos/app-framework";
|
|
11
11
|
import { ObjectId } from "@dxos/echo-schema";
|
|
12
12
|
import { DXN, QueueSubspaceTags } from "@dxos/keys";
|
|
13
|
-
import {
|
|
13
|
+
import { live, refFromDXN } from "@dxos/live-object";
|
|
14
14
|
var intent_resolver_default = () => [
|
|
15
15
|
contributes(Capabilities.IntentResolver, createResolver({
|
|
16
16
|
intent: AssistantAction.CreateChat,
|
|
17
17
|
resolve: ({ spaceId, name }) => ({
|
|
18
18
|
data: {
|
|
19
|
-
object:
|
|
19
|
+
object: live(AIChatType, {
|
|
20
20
|
assistantChatQueue: refFromDXN(new DXN(DXN.kind.QUEUE, [
|
|
21
21
|
QueueSubspaceTags.DATA,
|
|
22
22
|
spaceId,
|
|
@@ -30,7 +30,7 @@ var intent_resolver_default = () => [
|
|
|
30
30
|
intent: AssistantAction.CreateTemplate,
|
|
31
31
|
resolve: ({ name }) => ({
|
|
32
32
|
data: {
|
|
33
|
-
object:
|
|
33
|
+
object: live(TemplateType, {
|
|
34
34
|
name,
|
|
35
35
|
kind: {
|
|
36
36
|
include: "manual"
|
|
@@ -44,4 +44,4 @@ var intent_resolver_default = () => [
|
|
|
44
44
|
export {
|
|
45
45
|
intent_resolver_default as default
|
|
46
46
|
};
|
|
47
|
-
//# sourceMappingURL=intent-resolver-
|
|
47
|
+
//# sourceMappingURL=intent-resolver-V2ZFI5C4.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
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 { live, 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: live(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: live(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,MAAMC,kBAAkB;AAIjC,IAAA,0BAAe,MAAM;EACnBC,YACEC,aAAaC,gBACbC,eAAe;IACbC,QAAQC,gBAAgBC;IACxBC,SAAS,CAAC,EAAEC,SAASC,KAAI,OAAQ;MAC/BC,MAAM;QACJC,QAAQC,KAAKC,YAAY;UACvBC,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,KAAKY,cAAc;UAAEf;UAAMQ,MAAM;YAAEQ,SAAS;UAAS;UAAGC,QAAQ;QAAkB,CAAA;MAC5F;IACF;EACF,CAAA,CAAA;;",
|
|
6
|
+
"names": ["Capabilities", "contributes", "createResolver", "ObjectId", "DXN", "QueueSubspaceTags", "live", "refFromDXN", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "AssistantAction", "CreateChat", "resolve", "spaceId", "name", "data", "object", "live", "AIChatType", "assistantChatQueue", "refFromDXN", "DXN", "kind", "QUEUE", "QueueSubspaceTags", "DATA", "ObjectId", "random", "CreateTemplate", "TemplateType", "include", "source"]
|
|
7
|
+
}
|