@dxos/plugin-assistant 0.8.2-main.f11618f → 0.8.2-staging.7ac8446
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-I47GUXWR.mjs → AssistantDialog-YSHMAHW5.mjs} +3 -3
- package/dist/lib/browser/{ChatContainer-GAYN3FEF.mjs → ChatContainer-V5GP7DYF.mjs} +3 -3
- package/dist/lib/browser/ChatContainer-V5GP7DYF.mjs.map +7 -0
- package/dist/lib/browser/TemplateContainer-K4EJNGIL.mjs +78 -0
- package/dist/lib/browser/TemplateContainer-K4EJNGIL.mjs.map +7 -0
- package/dist/lib/browser/{ai-client-OK5SMYJC.mjs → ai-client-CDZLSNXE.mjs} +1 -1
- package/dist/lib/browser/{ai-client-OK5SMYJC.mjs.map → ai-client-CDZLSNXE.mjs.map} +2 -2
- package/dist/lib/browser/{app-graph-builder-ZXKGE3H5.mjs → app-graph-builder-MF5EVDWW.mjs} +39 -9
- package/dist/lib/browser/app-graph-builder-MF5EVDWW.mjs.map +7 -0
- package/dist/lib/browser/{chunk-7CAHKTZQ.mjs → chunk-FMB7RGMP.mjs} +56 -92
- package/dist/lib/browser/chunk-FMB7RGMP.mjs.map +7 -0
- package/dist/lib/browser/{chunk-E7BN4QKP.mjs → chunk-IAMR2FAE.mjs} +2 -9
- package/dist/lib/browser/{chunk-E7BN4QKP.mjs.map → chunk-IAMR2FAE.mjs.map} +3 -3
- package/dist/lib/browser/chunk-KYMKVE6M.mjs +128 -0
- package/dist/lib/browser/chunk-KYMKVE6M.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +11 -14
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-W6XREK5F.mjs → intent-resolver-WJGLKKVO.mjs} +5 -5
- package/dist/lib/browser/intent-resolver-WJGLKKVO.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-QMI5KG4H.mjs → react-surface-57VRDOQT.mjs} +15 -15
- package/dist/lib/browser/react-surface-57VRDOQT.mjs.map +7 -0
- package/dist/lib/browser/{settings-LAJZQI4H.mjs → settings-U6UFQX32.mjs} +4 -4
- package/dist/lib/browser/settings-U6UFQX32.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +1 -3
- package/dist/lib/node/{AssistantDialog-SDS2TE5L.cjs → AssistantDialog-YI2BSGSX.cjs} +7 -7
- package/dist/lib/node/{ChatContainer-U6AVMAHY.cjs → ChatContainer-ZJ5JXF6A.cjs} +7 -7
- package/dist/lib/node/ChatContainer-ZJ5JXF6A.cjs.map +7 -0
- package/dist/lib/node/TemplateContainer-XWFYJB4T.cjs +104 -0
- package/dist/lib/node/TemplateContainer-XWFYJB4T.cjs.map +7 -0
- package/dist/lib/node/{ai-client-3EVTLXTT.cjs → ai-client-URCCYU6B.cjs} +4 -4
- package/dist/lib/node/{ai-client-3EVTLXTT.cjs.map → ai-client-URCCYU6B.cjs.map} +2 -2
- package/dist/lib/node/{app-graph-builder-TXHPXIIC.cjs → app-graph-builder-N5ZUUI2Z.cjs} +44 -14
- package/dist/lib/node/app-graph-builder-N5ZUUI2Z.cjs.map +7 -0
- package/dist/lib/node/{chunk-5UELRDHQ.cjs → chunk-APRU3QWK.cjs} +5 -13
- package/dist/lib/node/{chunk-5UELRDHQ.cjs.map → chunk-APRU3QWK.cjs.map} +3 -3
- package/dist/lib/node/{chunk-CWHFK36A.cjs → chunk-RPBKMP2E.cjs} +80 -117
- package/dist/lib/node/chunk-RPBKMP2E.cjs.map +7 -0
- package/dist/lib/node/{chunk-XBJO453B.cjs → chunk-ZKOC4ZFY.cjs} +61 -78
- package/dist/lib/node/chunk-ZKOC4ZFY.cjs.map +7 -0
- package/dist/lib/node/index.cjs +43 -46
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-MUJMV7II.cjs → intent-resolver-R3OSTIMH.cjs} +9 -9
- package/dist/lib/node/intent-resolver-R3OSTIMH.cjs.map +7 -0
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-SAJF4XBB.cjs → react-surface-NUQTM6MS.cjs} +22 -22
- package/dist/lib/node/react-surface-NUQTM6MS.cjs.map +7 -0
- package/dist/lib/node/{settings-NPXTE6ND.cjs → settings-TXGRCYAL.cjs} +7 -7
- package/dist/lib/node/settings-TXGRCYAL.cjs.map +7 -0
- package/dist/lib/node/types/index.cjs +12 -14
- package/dist/lib/node/types/index.cjs.map +2 -2
- package/dist/lib/node-esm/{AssistantDialog-KGA5HBFO.mjs → AssistantDialog-U2FQX5TD.mjs} +3 -3
- package/dist/lib/node-esm/{ChatContainer-XPNXNPSW.mjs → ChatContainer-QW3OOXTT.mjs} +3 -3
- package/dist/lib/node-esm/ChatContainer-QW3OOXTT.mjs.map +7 -0
- package/dist/lib/node-esm/TemplateContainer-EUM2X65J.mjs +79 -0
- package/dist/lib/node-esm/TemplateContainer-EUM2X65J.mjs.map +7 -0
- package/dist/lib/node-esm/{ai-client-LYCBXZI7.mjs → ai-client-WMHS5EGV.mjs} +1 -1
- package/dist/lib/node-esm/{ai-client-LYCBXZI7.mjs.map → ai-client-WMHS5EGV.mjs.map} +2 -2
- package/dist/lib/node-esm/{app-graph-builder-SV4WC2E2.mjs → app-graph-builder-DWBNIMHM.mjs} +39 -9
- package/dist/lib/node-esm/app-graph-builder-DWBNIMHM.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-GBBXIW5F.mjs +129 -0
- package/dist/lib/node-esm/chunk-GBBXIW5F.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-XFUXN5QU.mjs → chunk-MVDAY3CZ.mjs} +56 -92
- package/dist/lib/node-esm/chunk-MVDAY3CZ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ECYNZYEG.mjs → chunk-MXK2EANZ.mjs} +2 -9
- package/dist/lib/node-esm/{chunk-ECYNZYEG.mjs.map → chunk-MXK2EANZ.mjs.map} +3 -3
- package/dist/lib/node-esm/index.mjs +11 -14
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-DZY2O2DG.mjs → intent-resolver-H32TL4X6.mjs} +5 -5
- package/dist/lib/node-esm/intent-resolver-H32TL4X6.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-R43NHNMC.mjs → react-surface-JBVZF6CP.mjs} +15 -15
- package/dist/lib/node-esm/react-surface-JBVZF6CP.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-K3JDH2I5.mjs → settings-DZU5PNXM.mjs} +4 -4
- package/dist/lib/node-esm/settings-DZU5PNXM.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +1 -3
- package/dist/types/src/capabilities/ai-client.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +1 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer.d.ts +3 -4
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts +6 -0
- package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts.map +1 -0
- package/dist/types/src/components/ServiceRegistry/ServiceRegistry.stories.d.ts +8 -0
- package/dist/types/src/components/ServiceRegistry/ServiceRegistry.stories.d.ts.map +1 -0
- package/dist/types/src/components/ServiceRegistry/index.d.ts +2 -0
- package/dist/types/src/components/ServiceRegistry/index.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 +6 -2
- 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/useChatProcessor.d.ts.map +1 -1
- package/dist/types/src/hooks/useMessageQueue.d.ts +3 -0
- package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +0 -3
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +1 -3
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/package.json +57 -57
- package/src/AssistantPlugin.tsx +2 -2
- package/src/capabilities/ai-client.ts +1 -0
- package/src/capabilities/app-graph-builder.ts +38 -6
- package/src/capabilities/index.ts +1 -1
- package/src/capabilities/intent-resolver.ts +3 -3
- package/src/capabilities/react-surface.tsx +9 -11
- package/src/capabilities/settings.ts +2 -2
- package/src/components/AssistantSettings/AssistantSettings.tsx +6 -28
- package/src/components/ChatContainer.tsx +8 -6
- package/src/components/ServiceRegistry/ServiceRegistry.stories.tsx +49 -0
- package/src/components/ServiceRegistry/ServiceRegistry.tsx +76 -0
- package/src/components/ServiceRegistry/index.ts +5 -0
- package/src/components/TemplateContainer.tsx +79 -3
- 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 +18 -9
- package/src/components/Thread/ThreadContainer.tsx +2 -24
- package/src/components/Thread/ThreadMessage.tsx +2 -5
- package/src/components/Toolbox/Toolbox.stories.tsx +1 -1
- package/src/components/index.ts +1 -1
- package/src/hooks/processor.ts +4 -26
- package/src/hooks/useChatProcessor.tsx +2 -3
- package/src/testing/test-services.ts +6 -6
- package/src/translations.ts +4 -5
- package/src/types/types.ts +1 -4
- package/dist/lib/browser/ChatContainer-GAYN3FEF.mjs.map +0 -7
- package/dist/lib/browser/TemplateContainer-WKU5XFSO.mjs +0 -22
- package/dist/lib/browser/TemplateContainer-WKU5XFSO.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-ZXKGE3H5.mjs.map +0 -7
- package/dist/lib/browser/chunk-7CAHKTZQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-BGMQ2YYP.mjs +0 -143
- package/dist/lib/browser/chunk-BGMQ2YYP.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-W6XREK5F.mjs.map +0 -7
- package/dist/lib/browser/react-surface-QMI5KG4H.mjs.map +0 -7
- package/dist/lib/browser/settings-LAJZQI4H.mjs.map +0 -7
- package/dist/lib/node/ChatContainer-U6AVMAHY.cjs.map +0 -7
- package/dist/lib/node/TemplateContainer-EQXKHWTF.cjs +0 -52
- package/dist/lib/node/TemplateContainer-EQXKHWTF.cjs.map +0 -7
- package/dist/lib/node/app-graph-builder-TXHPXIIC.cjs.map +0 -7
- package/dist/lib/node/chunk-CWHFK36A.cjs.map +0 -7
- package/dist/lib/node/chunk-XBJO453B.cjs.map +0 -7
- package/dist/lib/node/intent-resolver-MUJMV7II.cjs.map +0 -7
- package/dist/lib/node/react-surface-SAJF4XBB.cjs.map +0 -7
- package/dist/lib/node/settings-NPXTE6ND.cjs.map +0 -7
- package/dist/lib/node-esm/ChatContainer-XPNXNPSW.mjs.map +0 -7
- package/dist/lib/node-esm/TemplateContainer-3LEBT5ZC.mjs +0 -23
- package/dist/lib/node-esm/TemplateContainer-3LEBT5ZC.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-SV4WC2E2.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-R7Q3OHWG.mjs +0 -144
- package/dist/lib/node-esm/chunk-R7Q3OHWG.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-XFUXN5QU.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-DZY2O2DG.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-R43NHNMC.mjs.map +0 -7
- package/dist/lib/node-esm/settings-K3JDH2I5.mjs.map +0 -7
- package/dist/types/src/components/PromptSettings.d.ts +0 -6
- package/dist/types/src/components/PromptSettings.d.ts.map +0 -1
- package/src/components/PromptSettings.tsx +0 -91
- /package/dist/lib/browser/{AssistantDialog-I47GUXWR.mjs.map → AssistantDialog-YSHMAHW5.mjs.map} +0 -0
- /package/dist/lib/node/{AssistantDialog-SDS2TE5L.cjs.map → AssistantDialog-YI2BSGSX.cjs.map} +0 -0
- /package/dist/lib/node-esm/{AssistantDialog-KGA5HBFO.mjs.map → AssistantDialog-U2FQX5TD.mjs.map} +0 -0
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ThreadContainer
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FMB7RGMP.mjs";
|
|
4
4
|
import "./chunk-TXJWGWJ7.mjs";
|
|
5
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-IAMR2FAE.mjs";
|
|
6
6
|
import {
|
|
7
7
|
ASSISTANT_PLUGIN
|
|
8
8
|
} from "./chunk-3HCI5FIL.mjs";
|
|
@@ -114,4 +114,4 @@ export {
|
|
|
114
114
|
AssistantDialog,
|
|
115
115
|
AssistantDialog_default as default
|
|
116
116
|
};
|
|
117
|
-
//# sourceMappingURL=AssistantDialog-
|
|
117
|
+
//# sourceMappingURL=AssistantDialog-YSHMAHW5.mjs.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import {
|
|
2
2
|
ThreadContainer
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-FMB7RGMP.mjs";
|
|
4
4
|
import "./chunk-TXJWGWJ7.mjs";
|
|
5
|
-
import "./chunk-
|
|
5
|
+
import "./chunk-IAMR2FAE.mjs";
|
|
6
6
|
import {
|
|
7
7
|
ASSISTANT_PLUGIN
|
|
8
8
|
} from "./chunk-3HCI5FIL.mjs";
|
|
@@ -30,4 +30,4 @@ export {
|
|
|
30
30
|
ChatContainer,
|
|
31
31
|
ChatContainer_default as default
|
|
32
32
|
};
|
|
33
|
-
//# sourceMappingURL=ChatContainer-
|
|
33
|
+
//# sourceMappingURL=ChatContainer-V5GP7DYF.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
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,OAAOA,WAAW;AAElB,SAASC,cAAcC,iBAAiBC,qBAAqB;AAE7D,SAASC,iCAAiC;AAC1C,SAASC,iBAAiB;AAOnB,IAAMC,gBAAgB,CAAC,EAC5BC,MACAC,MACAC,mBAAkB,MAKnB;AACC,QAAMC,gBAAgBC,gBAAgBC,0BAA0BC,WAAW,EAAEC,SAAS;AACtF,QAAMC,WAAWC,cAAcC,aAAaC,aAAa,EAAEC,SAAiCC,gBAAAA,GAAmBC;AAE/G,SACE,sBAAA,cAACC,UAAUC,SAAO;IAAChB;IAAYiB,YAAW;KACxC,sBAAA,cAACC,iBAAAA;IACCjB;IACAO;IACAL;IACAD;;AAIR;AAEA,IAAA,wBAAeH;",
|
|
6
|
+
"names": ["React", "Capabilities", "useCapabilities", "useCapability", "TranscriptionCapabilities", "StackItem", "ChatContainer", "role", "chat", "associatedArtifact", "transcription", "useCapabilities", "TranscriptionCapabilities", "Transcriber", "length", "settings", "useCapability", "Capabilities", "SettingsStore", "getStore", "ASSISTANT_PLUGIN", "value", "StackItem", "Content", "classNames", "ThreadContainer"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import {
|
|
2
|
+
TemplateEditor
|
|
3
|
+
} from "./chunk-NFUHCW2J.mjs";
|
|
4
|
+
import {
|
|
5
|
+
TemplateKinds
|
|
6
|
+
} from "./chunk-IAMR2FAE.mjs";
|
|
7
|
+
import {
|
|
8
|
+
ASSISTANT_PLUGIN
|
|
9
|
+
} from "./chunk-3HCI5FIL.mjs";
|
|
10
|
+
|
|
11
|
+
// packages/plugins/plugin-assistant/src/components/TemplateContainer.tsx
|
|
12
|
+
import { Match } from "effect";
|
|
13
|
+
import React, { useCallback } from "react";
|
|
14
|
+
import { debounce } from "@dxos/async";
|
|
15
|
+
import { Input, Select, Toolbar, useTranslation } from "@dxos/react-ui";
|
|
16
|
+
import { StackItem } from "@dxos/react-ui-stack";
|
|
17
|
+
var TemplateContainer = ({ template, role }) => {
|
|
18
|
+
const { t } = useTranslation(ASSISTANT_PLUGIN);
|
|
19
|
+
const handleKindChange = useCallback((value) => {
|
|
20
|
+
const kind = Match.type().pipe(Match.withReturnType(), Match.when("always", () => ({
|
|
21
|
+
include: "always"
|
|
22
|
+
})), Match.when("schema-matching", () => ({
|
|
23
|
+
include: "schema-matching",
|
|
24
|
+
typename: ""
|
|
25
|
+
})), Match.when("automatically", () => ({
|
|
26
|
+
include: "automatically",
|
|
27
|
+
description: ""
|
|
28
|
+
})), Match.orElse(() => ({
|
|
29
|
+
include: "manual"
|
|
30
|
+
})))(value);
|
|
31
|
+
template.kind = kind;
|
|
32
|
+
}, [
|
|
33
|
+
template
|
|
34
|
+
]);
|
|
35
|
+
const handleTypenameChange = useCallback(debounce((event) => {
|
|
36
|
+
if (template.kind.include === "schema-matching") {
|
|
37
|
+
template.kind.typename = event.target.value;
|
|
38
|
+
}
|
|
39
|
+
}, 300), [
|
|
40
|
+
template.kind.include
|
|
41
|
+
]);
|
|
42
|
+
const handleDescriptionChange = useCallback(debounce((event) => {
|
|
43
|
+
if (template.kind.include === "automatically") {
|
|
44
|
+
template.kind.description = event.target.value;
|
|
45
|
+
}
|
|
46
|
+
}, 300), [
|
|
47
|
+
template.kind.include
|
|
48
|
+
]);
|
|
49
|
+
return /* @__PURE__ */ React.createElement(StackItem.Content, {
|
|
50
|
+
role,
|
|
51
|
+
toolbar: true,
|
|
52
|
+
classNames: "container-max-width"
|
|
53
|
+
}, /* @__PURE__ */ React.createElement(Toolbar.Root, null, /* @__PURE__ */ React.createElement(Select.Root, {
|
|
54
|
+
value: template.kind.include,
|
|
55
|
+
onValueChange: handleKindChange
|
|
56
|
+
}, /* @__PURE__ */ React.createElement(Toolbar.Button, {
|
|
57
|
+
asChild: true
|
|
58
|
+
}, /* @__PURE__ */ React.createElement(Select.TriggerButton, null)), /* @__PURE__ */ React.createElement(Select.Portal, null, /* @__PURE__ */ React.createElement(Select.Content, null, /* @__PURE__ */ React.createElement(Select.Viewport, null, TemplateKinds.map((kind) => /* @__PURE__ */ React.createElement(Select.Option, {
|
|
59
|
+
key: kind,
|
|
60
|
+
value: kind
|
|
61
|
+
}, kind)))))), template.kind.include === "schema-matching" && /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.TextInput, {
|
|
62
|
+
placeholder: t("typename placeholder"),
|
|
63
|
+
defaultValue: template.kind.typename,
|
|
64
|
+
onChange: handleTypenameChange
|
|
65
|
+
})), template.kind.include === "automatically" && /* @__PURE__ */ React.createElement(Input.Root, null, /* @__PURE__ */ React.createElement(Input.TextInput, {
|
|
66
|
+
placeholder: t("description placeholder"),
|
|
67
|
+
defaultValue: template.kind.description,
|
|
68
|
+
onChange: handleDescriptionChange
|
|
69
|
+
}))), /* @__PURE__ */ React.createElement(TemplateEditor, {
|
|
70
|
+
template
|
|
71
|
+
}));
|
|
72
|
+
};
|
|
73
|
+
var TemplateContainer_default = TemplateContainer;
|
|
74
|
+
export {
|
|
75
|
+
TemplateContainer,
|
|
76
|
+
TemplateContainer_default as default
|
|
77
|
+
};
|
|
78
|
+
//# sourceMappingURL=TemplateContainer-K4EJNGIL.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
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,SAASA,aAA+B;AACxC,OAAOC,SAA2BC,mBAAmB;AAErD,SAASC,gBAAgB;AACzB,SAASC,OAAOC,QAAQC,SAASC,sBAAsB;AACvD,SAASC,iBAAiB;AAMnB,IAAMC,oBAAoB,CAAC,EAAEC,UAAUC,KAAI,MAA4C;AAC5F,QAAM,EAAEC,EAAC,IAAKC,eAAeC,gBAAAA;AAE7B,QAAMC,mBAAmBC,YACvB,CAACC,UAAAA;AACC,UAAMC,OAAOC,MAAMC,KAAI,EAAWC,KAChCF,MAAMG,eAAc,GACpBH,MAAMI,KAAK,UAAU,OAAO;MAAEC,SAAS;IAAS,EAAA,GAChDL,MAAMI,KAAK,mBAAmB,OAAO;MAAEC,SAAS;MAAmBC,UAAU;IAAG,EAAA,GAChFN,MAAMI,KAAK,iBAAiB,OAAO;MAAEC,SAAS;MAAiBE,aAAa;IAAG,EAAA,GAC/EP,MAAMQ,OAAO,OAAO;MAAEH,SAAS;IAAS,EAAA,CAAA,EACxCP,KAAAA;AAEFP,aAASQ,OAAOA;EAClB,GACA;IAACR;GAAS;AAGZ,QAAMkB,uBAAuBZ,YAC3Ba,SAAS,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,0BAA0BhB,YAC9Ba,SAAS,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,sBAAA,cAACS,UAAUC,SAAO;IAACvB;IAAYwB,SAAAA;IAAQC,YAAW;KAEhD,sBAAA,cAACC,QAAQC,MAAI,MACX,sBAAA,cAACC,OAAOD,MAAI;IAACrB,OAAOP,SAASQ,KAAKM;IAASgB,eAAezB;KACxD,sBAAA,cAACsB,QAAQI,QAAM;IAACC,SAAAA;KACd,sBAAA,cAACH,OAAOI,eAAa,IAAA,CAAA,GAEvB,sBAAA,cAACJ,OAAOK,QAAM,MACZ,sBAAA,cAACL,OAAOL,SAAO,MACb,sBAAA,cAACK,OAAOM,UAAQ,MACbC,cAAcC,IAAI,CAAC7B,SAClB,sBAAA,cAACqB,OAAOS,QAAM;IAACC,KAAK/B;IAAMD,OAAOC;KAC9BA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAOZR,SAASQ,KAAKM,YAAY,qBACzB,sBAAA,cAAC0B,MAAMZ,MAAI,MACT,sBAAA,cAACY,MAAMC,WAAS;IACdC,aAAaxC,EAAE,sBAAA;IACfyC,cAAc3C,SAASQ,KAAKO;IAC5B6B,UAAU1B;OAIflB,SAASQ,KAAKM,YAAY,mBACzB,sBAAA,cAAC0B,MAAMZ,MAAI,MACT,sBAAA,cAACY,MAAMC,WAAS;IACdC,aAAaxC,EAAE,yBAAA;IACfyC,cAAc3C,SAASQ,KAAKQ;IAC5B4B,UAAUtB;QAKlB,sBAAA,cAACuB,gBAAAA;IAAe7C;;AAGtB;AAEA,IAAA,4BAAeD;",
|
|
6
|
+
"names": ["Match", "React", "useCallback", "debounce", "Input", "Select", "Toolbar", "useTranslation", "StackItem", "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", "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 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/capabilities/ai-client.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect, signal } from '@preact/signals-core';\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { type AIServiceClient, AIServiceEdgeClient, OllamaClient } from '@dxos/assistant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { AssistantCapabilities } from './capabilities';\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { type AssistantSettingsProps } from '../types';\n\n// TODO(wittjosiah): Factor out.\nconst DEFAULT_AI_SERVICE_URL = 'http://localhost:8788';\n\nexport default (context: PluginsContext) => {\n const client = context.requestCapability(ClientCapabilities.Client);\n const endpoint = client.config.values.runtime?.services?.ai?.server ?? DEFAULT_AI_SERVICE_URL;\n\n const ai = signal<AIServiceClient>(new AIServiceEdgeClient({ endpoint }));\n\n const unsubscribe = effect(() => {\n const settings = context\n .requestCapability(Capabilities.SettingsStore)\n .getStore<AssistantSettingsProps>(ASSISTANT_PLUGIN)?.value;\n\n if (settings?.llmProvider === 'ollama') {\n ai.value = new OllamaClient();\n } else {\n ai.value = new AIServiceEdgeClient({ endpoint });\n }\n });\n\n return contributes(AssistantCapabilities.AiClient, ai, () => unsubscribe());\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;AAIA,SAASA,QAAQC,cAAc;AAE/B,SAASC,cAAcC,mBAAwC;AAC/D,SAA+BC,qBAAqBC,oBAAoB;AACxE,SAASC,0BAA0B;AAOnC,IAAMC,yBAAyB;AAE/B,IAAA,oBAAe,CAACC,YAAAA;AACd,QAAMC,SAASD,QAAQE,kBAAkBC,mBAAmBC,MAAM;AAClE,QAAMC,WAAWJ,OAAOK,OAAOC,OAAOC,SAASC,UAAUC,IAAIC,UAAUZ;AAEvE,QAAMW,KAAKE,OAAwB,IAAIC,oBAAoB;IAAER;EAAS,CAAA,CAAA;AAEtE,QAAMS,cAAcC,OAAO,MAAA;
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { effect, signal } from '@preact/signals-core';\n\nimport { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';\nimport { type AIServiceClient, AIServiceEdgeClient, OllamaClient } from '@dxos/assistant';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { AssistantCapabilities } from './capabilities';\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { type AssistantSettingsProps } from '../types';\n\n// TODO(wittjosiah): Factor out.\nconst DEFAULT_AI_SERVICE_URL = 'http://localhost:8788';\n\nexport default (context: PluginsContext) => {\n const client = context.requestCapability(ClientCapabilities.Client);\n const endpoint = client.config.values.runtime?.services?.ai?.server ?? DEFAULT_AI_SERVICE_URL;\n\n const ai = signal<AIServiceClient>(new AIServiceEdgeClient({ endpoint }));\n\n const unsubscribe = effect(() => {\n // TODO(burdon): Could be undefined.\n const settings = context\n .requestCapability(Capabilities.SettingsStore)\n .getStore<AssistantSettingsProps>(ASSISTANT_PLUGIN)?.value;\n\n if (settings?.llmProvider === 'ollama') {\n ai.value = new OllamaClient();\n } else {\n ai.value = new AIServiceEdgeClient({ endpoint });\n }\n });\n\n return contributes(AssistantCapabilities.AiClient, ai, () => unsubscribe());\n};\n"],
|
|
5
|
+
"mappings": ";;;;;;;;AAIA,SAASA,QAAQC,cAAc;AAE/B,SAASC,cAAcC,mBAAwC;AAC/D,SAA+BC,qBAAqBC,oBAAoB;AACxE,SAASC,0BAA0B;AAOnC,IAAMC,yBAAyB;AAE/B,IAAA,oBAAe,CAACC,YAAAA;AACd,QAAMC,SAASD,QAAQE,kBAAkBC,mBAAmBC,MAAM;AAClE,QAAMC,WAAWJ,OAAOK,OAAOC,OAAOC,SAASC,UAAUC,IAAIC,UAAUZ;AAEvE,QAAMW,KAAKE,OAAwB,IAAIC,oBAAoB;IAAER;EAAS,CAAA,CAAA;AAEtE,QAAMS,cAAcC,OAAO,MAAA;AAEzB,UAAMC,WAAWhB,QACdE,kBAAkBe,aAAaC,aAAa,EAC5CC,SAAiCC,gBAAAA,GAAmBC;AAEvD,QAAIL,UAAUM,gBAAgB,UAAU;AACtCZ,SAAGW,QAAQ,IAAIE,aAAAA;IACjB,OAAO;AACLb,SAAGW,QAAQ,IAAIR,oBAAoB;QAAER;MAAS,CAAA;IAChD;EACF,CAAA;AAEA,SAAOmB,YAAYC,sBAAsBC,UAAUhB,IAAI,MAAMI,YAAAA,CAAAA;AAC/D;",
|
|
6
6
|
"names": ["effect", "signal", "Capabilities", "contributes", "AIServiceEdgeClient", "OllamaClient", "ClientCapabilities", "DEFAULT_AI_SERVICE_URL", "context", "client", "requestCapability", "ClientCapabilities", "Client", "endpoint", "config", "values", "runtime", "services", "ai", "server", "signal", "AIServiceEdgeClient", "unsubscribe", "effect", "settings", "Capabilities", "SettingsStore", "getStore", "ASSISTANT_PLUGIN", "value", "llmProvider", "OllamaClient", "contributes", "AssistantCapabilities", "AiClient"]
|
|
7
7
|
}
|
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
AIChatType,
|
|
3
3
|
AssistantAction,
|
|
4
4
|
TemplateType
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-IAMR2FAE.mjs";
|
|
6
6
|
import {
|
|
7
7
|
ASSISTANT_DIALOG,
|
|
8
8
|
ASSISTANT_PLUGIN
|
|
@@ -12,11 +12,11 @@ import {
|
|
|
12
12
|
import { Capabilities, contributes, createIntent, LayoutAction } from "@dxos/app-framework";
|
|
13
13
|
import { invariant } from "@dxos/invariant";
|
|
14
14
|
import { ClientCapabilities } from "@dxos/plugin-client";
|
|
15
|
-
import { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR } from "@dxos/plugin-deck/types";
|
|
15
|
+
import { PLANK_COMPANION_TYPE, ATTENDABLE_PATH_SEPARATOR, DECK_COMPANION_TYPE } from "@dxos/plugin-deck/types";
|
|
16
16
|
import { createExtension, ROOT_ID } from "@dxos/plugin-graph";
|
|
17
17
|
import { memoizeQuery } from "@dxos/plugin-space";
|
|
18
|
-
import {
|
|
19
|
-
import { Filter, fullyQualifiedId, getSpace,
|
|
18
|
+
import { SpaceAction } from "@dxos/plugin-space/types";
|
|
19
|
+
import { Filter, fullyQualifiedId, getSpace, isSpace, isReactiveObject, parseId } from "@dxos/react-client/echo";
|
|
20
20
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/capabilities/app-graph-builder.ts";
|
|
21
21
|
var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBuilder, [
|
|
22
22
|
createExtension({
|
|
@@ -76,9 +76,39 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
76
76
|
}
|
|
77
77
|
]
|
|
78
78
|
}),
|
|
79
|
+
createExtension({
|
|
80
|
+
id: `${ASSISTANT_PLUGIN}/service-registry`,
|
|
81
|
+
filter: (node) => node.id === "root",
|
|
82
|
+
connector: ({ node }) => {
|
|
83
|
+
const layout = context.requestCapability(Capabilities.Layout);
|
|
84
|
+
const client = context.requestCapability(ClientCapabilities.Client);
|
|
85
|
+
const { spaceId } = parseId(layout.workspace);
|
|
86
|
+
const space = spaceId ? client.spaces.get(spaceId) : null;
|
|
87
|
+
return [
|
|
88
|
+
{
|
|
89
|
+
id: [
|
|
90
|
+
node.id,
|
|
91
|
+
"service-registry"
|
|
92
|
+
].join(ATTENDABLE_PATH_SEPARATOR),
|
|
93
|
+
type: DECK_COMPANION_TYPE,
|
|
94
|
+
data: space,
|
|
95
|
+
properties: {
|
|
96
|
+
label: [
|
|
97
|
+
"service registry label",
|
|
98
|
+
{
|
|
99
|
+
ns: ASSISTANT_PLUGIN
|
|
100
|
+
}
|
|
101
|
+
],
|
|
102
|
+
icon: "ph--plugs--regular",
|
|
103
|
+
disposition: "hidden"
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
];
|
|
107
|
+
}
|
|
108
|
+
}),
|
|
79
109
|
createExtension({
|
|
80
110
|
id: `${ASSISTANT_PLUGIN}/object-chat-companion`,
|
|
81
|
-
filter: (node) =>
|
|
111
|
+
filter: (node) => isReactiveObject(node.data) && node.data.assistantChatQueue && node.data.type !== AIChatType.typename,
|
|
82
112
|
connector: ({ node }) => [
|
|
83
113
|
{
|
|
84
114
|
id: [
|
|
@@ -102,7 +132,7 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
102
132
|
}),
|
|
103
133
|
createExtension({
|
|
104
134
|
id: `${ASSISTANT_PLUGIN}/root`,
|
|
105
|
-
filter: (node) => node.
|
|
135
|
+
filter: (node) => isSpace(node.data),
|
|
106
136
|
connector: ({ node }) => {
|
|
107
137
|
const templates = memoizeQuery(node.data, Filter.schema(TemplateType));
|
|
108
138
|
return templates.length > 0 ? [
|
|
@@ -139,7 +169,7 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
139
169
|
data: template,
|
|
140
170
|
properties: {
|
|
141
171
|
label: template.name ?? [
|
|
142
|
-
"
|
|
172
|
+
"template title placeholder",
|
|
143
173
|
{
|
|
144
174
|
ns: ASSISTANT_PLUGIN
|
|
145
175
|
}
|
|
@@ -160,7 +190,7 @@ var getOrCreateChat = async (dispatch, space) => {
|
|
|
160
190
|
}));
|
|
161
191
|
invariant(data?.object instanceof AIChatType, void 0, {
|
|
162
192
|
F: __dxlog_file,
|
|
163
|
-
L:
|
|
193
|
+
L: 192,
|
|
164
194
|
S: void 0,
|
|
165
195
|
A: [
|
|
166
196
|
"data?.object instanceof AIChatType",
|
|
@@ -176,4 +206,4 @@ var getOrCreateChat = async (dispatch, space) => {
|
|
|
176
206
|
export {
|
|
177
207
|
app_graph_builder_default as default
|
|
178
208
|
};
|
|
179
|
-
//# sourceMappingURL=app-graph-builder-
|
|
209
|
+
//# sourceMappingURL=app-graph-builder-MF5EVDWW.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/app-graph-builder.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\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": ["Capabilities", "contributes", "createIntent", "LayoutAction", "invariant", "ClientCapabilities", "PLANK_COMPANION_TYPE", "ATTENDABLE_PATH_SEPARATOR", "DECK_COMPANION_TYPE", "createExtension", "ROOT_ID", "memoizeQuery", "SpaceAction", "Filter", "fullyQualifiedId", "getSpace", "isSpace", "isReactiveObject", "parseId", "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
|
+
}
|
|
@@ -4,7 +4,7 @@ import {
|
|
|
4
4
|
import {
|
|
5
5
|
ServiceType,
|
|
6
6
|
categoryIcons
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-IAMR2FAE.mjs";
|
|
8
8
|
import {
|
|
9
9
|
ASSISTANT_PLUGIN
|
|
10
10
|
} from "./chunk-3HCI5FIL.mjs";
|
|
@@ -753,7 +753,7 @@ var components = {
|
|
|
753
753
|
}
|
|
754
754
|
return /* @__PURE__ */ React3.createElement(ToggleContainer2, {
|
|
755
755
|
// open={open}
|
|
756
|
-
defaultOpen:
|
|
756
|
+
defaultOpen: block.disposition === "cot" && block.pending,
|
|
757
757
|
title,
|
|
758
758
|
icon: block.pending ? /* @__PURE__ */ React3.createElement(Icon, {
|
|
759
759
|
icon: "ph--circle-notch--regular",
|
|
@@ -764,7 +764,7 @@ var components = {
|
|
|
764
764
|
content: block.text,
|
|
765
765
|
classNames: [
|
|
766
766
|
"pbe-2",
|
|
767
|
-
|
|
767
|
+
block.disposition === "cot" && "text-sm text-subdued"
|
|
768
768
|
]
|
|
769
769
|
}));
|
|
770
770
|
},
|
|
@@ -841,13 +841,8 @@ var titles = {
|
|
|
841
841
|
["artifact"]: "Artifact",
|
|
842
842
|
["tool_use"]: "Tool request",
|
|
843
843
|
["tool_result"]: "Tool result",
|
|
844
|
-
["tool_list"]: "Tools"
|
|
845
|
-
["artifact-update"]: "Artifact(s) changed"
|
|
844
|
+
["tool_list"]: "Tools"
|
|
846
845
|
};
|
|
847
|
-
var systemDispositions = [
|
|
848
|
-
"cot",
|
|
849
|
-
"artifact-update"
|
|
850
|
-
];
|
|
851
846
|
|
|
852
847
|
// packages/plugins/plugin-assistant/src/components/Thread/reducer.ts
|
|
853
848
|
var messageReducer = ({ current, messages }, message) => {
|
|
@@ -1385,11 +1380,8 @@ var Thread = ({ classNames, space, messages, collapse = true, transcription, pro
|
|
|
1385
1380
|
};
|
|
1386
1381
|
|
|
1387
1382
|
// packages/plugins/plugin-assistant/src/components/Thread/ThreadContainer.tsx
|
|
1388
|
-
import React7, { useCallback as useCallback3
|
|
1389
|
-
import { CollaborationActions, createIntent, useIntentDispatcher as useIntentDispatcher2 } from "@dxos/app-framework";
|
|
1383
|
+
import React7, { useCallback as useCallback3 } from "react";
|
|
1390
1384
|
import { invariant as invariant6 } from "@dxos/invariant";
|
|
1391
|
-
import { DXN as DXN3 } from "@dxos/keys";
|
|
1392
|
-
import { makeRef, refFromDXN } from "@dxos/live-object";
|
|
1393
1385
|
import { log as log10 } from "@dxos/log";
|
|
1394
1386
|
import { getSpace as getSpace2 } from "@dxos/react-client/echo";
|
|
1395
1387
|
|
|
@@ -1398,7 +1390,6 @@ import { batch, computed, signal } from "@preact/signals-core";
|
|
|
1398
1390
|
import { AISession, DEFAULT_EDGE_MODEL } from "@dxos/assistant";
|
|
1399
1391
|
import { invariant as invariant3 } from "@dxos/invariant";
|
|
1400
1392
|
import { log as log5 } from "@dxos/log";
|
|
1401
|
-
import { getVersion } from "@dxos/react-client/echo";
|
|
1402
1393
|
var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/hooks/processor.ts";
|
|
1403
1394
|
var defaultOptions = {
|
|
1404
1395
|
model: DEFAULT_EDGE_MODEL,
|
|
@@ -1457,7 +1448,7 @@ var ChatProcessor = class {
|
|
|
1457
1448
|
*/
|
|
1458
1449
|
async request(message, options = {}) {
|
|
1459
1450
|
this._session = new AISession({
|
|
1460
|
-
operationModel: "
|
|
1451
|
+
operationModel: "immediate"
|
|
1461
1452
|
});
|
|
1462
1453
|
this._session.message.on((message2) => {
|
|
1463
1454
|
batch(() => {
|
|
@@ -1484,40 +1475,19 @@ var ChatProcessor = class {
|
|
|
1484
1475
|
client: this._ai,
|
|
1485
1476
|
history: options.history ?? [],
|
|
1486
1477
|
artifacts: this._artifacts ?? [],
|
|
1487
|
-
requiredArtifactIds: this._artifacts?.map((artifact) => artifact.id) ?? [],
|
|
1488
1478
|
tools: this._tools ?? [],
|
|
1489
1479
|
prompt: message,
|
|
1490
1480
|
systemPrompt: this._options.systemPrompt,
|
|
1491
1481
|
extensions: this._extensions,
|
|
1492
|
-
artifactDiffResolver: async (artifacts) => {
|
|
1493
|
-
const space = this._extensions?.space;
|
|
1494
|
-
if (!space) {
|
|
1495
|
-
return /* @__PURE__ */ new Map();
|
|
1496
|
-
}
|
|
1497
|
-
const versions = /* @__PURE__ */ new Map();
|
|
1498
|
-
await Promise.all(artifacts.map(async (artifact) => {
|
|
1499
|
-
const { objects: [object] } = await space.db.query({
|
|
1500
|
-
id: artifact.id
|
|
1501
|
-
}).run();
|
|
1502
|
-
if (!object) {
|
|
1503
|
-
return;
|
|
1504
|
-
}
|
|
1505
|
-
versions.set(artifact.id, {
|
|
1506
|
-
version: getVersion(object),
|
|
1507
|
-
diff: `Current state: ${JSON.stringify(object)}`
|
|
1508
|
-
});
|
|
1509
|
-
}));
|
|
1510
|
-
return versions;
|
|
1511
|
-
},
|
|
1512
1482
|
generationOptions: {
|
|
1513
1483
|
model: this._options.model
|
|
1514
1484
|
}
|
|
1515
1485
|
});
|
|
1516
|
-
log5("completed", {
|
|
1486
|
+
log5.info("completed", {
|
|
1517
1487
|
messages
|
|
1518
1488
|
}, {
|
|
1519
1489
|
F: __dxlog_file6,
|
|
1520
|
-
L:
|
|
1490
|
+
L: 137,
|
|
1521
1491
|
S: this,
|
|
1522
1492
|
C: (f, a) => f(...a)
|
|
1523
1493
|
});
|
|
@@ -1525,7 +1495,7 @@ var ChatProcessor = class {
|
|
|
1525
1495
|
} catch (err) {
|
|
1526
1496
|
log5.catch(err, void 0, {
|
|
1527
1497
|
F: __dxlog_file6,
|
|
1528
|
-
L:
|
|
1498
|
+
L: 141,
|
|
1529
1499
|
S: this,
|
|
1530
1500
|
C: (f, a) => f(...a)
|
|
1531
1501
|
});
|
|
@@ -1550,7 +1520,7 @@ var ChatProcessor = class {
|
|
|
1550
1520
|
async cancel() {
|
|
1551
1521
|
log5.info("cancelling...", void 0, {
|
|
1552
1522
|
F: __dxlog_file6,
|
|
1553
|
-
L:
|
|
1523
|
+
L: 159,
|
|
1554
1524
|
S: this,
|
|
1555
1525
|
C: (f, a) => f(...a)
|
|
1556
1526
|
});
|
|
@@ -1586,22 +1556,15 @@ import { isNonNullable as isNonNullable2 } from "@dxos/util";
|
|
|
1586
1556
|
|
|
1587
1557
|
// packages/plugins/plugin-assistant/src/capabilities/index.ts
|
|
1588
1558
|
import { lazy } from "@dxos/app-framework";
|
|
1589
|
-
var AiClient = lazy(() => import("./ai-client-
|
|
1590
|
-
var AppGraphBuilder = lazy(() => import("./app-graph-builder-
|
|
1591
|
-
var IntentResolver = lazy(() => import("./intent-resolver-
|
|
1592
|
-
var ReactSurface = lazy(() => import("./react-surface-
|
|
1593
|
-
var
|
|
1559
|
+
var AiClient = lazy(() => import("./ai-client-CDZLSNXE.mjs"));
|
|
1560
|
+
var AppGraphBuilder = lazy(() => import("./app-graph-builder-MF5EVDWW.mjs"));
|
|
1561
|
+
var IntentResolver = lazy(() => import("./intent-resolver-WJGLKKVO.mjs"));
|
|
1562
|
+
var ReactSurface = lazy(() => import("./react-surface-57VRDOQT.mjs"));
|
|
1563
|
+
var AssistantSettings = lazy(() => import("./settings-U6UFQX32.mjs"));
|
|
1594
1564
|
|
|
1595
1565
|
// packages/plugins/plugin-assistant/src/hooks/useChatProcessor.tsx
|
|
1596
1566
|
var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/plugin-assistant/src/hooks/useChatProcessor.tsx";
|
|
1597
|
-
var useChatProcessor = ({
|
|
1598
|
-
chat,
|
|
1599
|
-
space,
|
|
1600
|
-
settings,
|
|
1601
|
-
// part = 'deck',
|
|
1602
|
-
part,
|
|
1603
|
-
associatedArtifact
|
|
1604
|
-
}) => {
|
|
1567
|
+
var useChatProcessor = ({ chat, space, settings, part = "deck", associatedArtifact }) => {
|
|
1605
1568
|
const aiClient = useCapability(AssistantCapabilities.AiClient);
|
|
1606
1569
|
const globalTools = useCapabilities2(Capabilities2.Tools);
|
|
1607
1570
|
const artifactDefinitions = useCapabilities2(Capabilities2.ArtifactDefinition);
|
|
@@ -1611,7 +1574,7 @@ var useChatProcessor = ({
|
|
|
1611
1574
|
useEffect3(() => {
|
|
1612
1575
|
log6("creating service tools...", void 0, {
|
|
1613
1576
|
F: __dxlog_file7,
|
|
1614
|
-
L:
|
|
1577
|
+
L: 48,
|
|
1615
1578
|
S: void 0,
|
|
1616
1579
|
C: (f, a) => f(...a)
|
|
1617
1580
|
});
|
|
@@ -1630,7 +1593,7 @@ var useChatProcessor = ({
|
|
|
1630
1593
|
const [tools, extensions] = useMemo3(() => {
|
|
1631
1594
|
log6("creating tools...", void 0, {
|
|
1632
1595
|
F: __dxlog_file7,
|
|
1633
|
-
L:
|
|
1596
|
+
L: 60,
|
|
1634
1597
|
S: void 0,
|
|
1635
1598
|
C: (f, a) => f(...a)
|
|
1636
1599
|
});
|
|
@@ -1671,7 +1634,7 @@ ${definition.instructions}`),
|
|
|
1671
1634
|
settings
|
|
1672
1635
|
}, {
|
|
1673
1636
|
F: __dxlog_file7,
|
|
1674
|
-
L:
|
|
1637
|
+
L: 91,
|
|
1675
1638
|
S: void 0,
|
|
1676
1639
|
C: (f, a) => f(...a)
|
|
1677
1640
|
});
|
|
@@ -1682,7 +1645,6 @@ ${definition.instructions}`),
|
|
|
1682
1645
|
}, [
|
|
1683
1646
|
aiClient.value,
|
|
1684
1647
|
tools,
|
|
1685
|
-
artifactDefinitions,
|
|
1686
1648
|
extensions,
|
|
1687
1649
|
model,
|
|
1688
1650
|
systemPrompt
|
|
@@ -1740,7 +1702,12 @@ import { createSystemPrompt as createSystemPrompt2 } from "@dxos/artifact";
|
|
|
1740
1702
|
import { DEFAULT_EDGE_MODEL as DEFAULT_EDGE_MODEL3 } from "@dxos/assistant";
|
|
1741
1703
|
|
|
1742
1704
|
// packages/plugins/plugin-assistant/src/testing/test-services.ts
|
|
1743
|
-
import {
|
|
1705
|
+
import { createStatic } from "@dxos/echo-schema";
|
|
1706
|
+
var MockServiceRegistry = class {
|
|
1707
|
+
async queryServices(query) {
|
|
1708
|
+
return TEST_SERVICES;
|
|
1709
|
+
}
|
|
1710
|
+
};
|
|
1744
1711
|
var AMADEUS_AUTH = {
|
|
1745
1712
|
type: "oauth",
|
|
1746
1713
|
clientId: "BOEnpLd1sMyKjAPGKYeAPFFy60u53QEG",
|
|
@@ -1757,7 +1724,7 @@ var VISUAL_CROSSING_CREDENTIALS = {
|
|
|
1757
1724
|
}
|
|
1758
1725
|
};
|
|
1759
1726
|
var TEST_SERVICES = [
|
|
1760
|
-
|
|
1727
|
+
createStatic(ServiceType, {
|
|
1761
1728
|
serviceId: "amadeus.com/service/FlightSearch",
|
|
1762
1729
|
name: "Amadeus Flight Search",
|
|
1763
1730
|
description: "Search for local and international flights.",
|
|
@@ -1770,7 +1737,7 @@ var TEST_SERVICES = [
|
|
|
1770
1737
|
}
|
|
1771
1738
|
]
|
|
1772
1739
|
}),
|
|
1773
|
-
|
|
1740
|
+
createStatic(ServiceType, {
|
|
1774
1741
|
serviceId: "amadeus.com/service/HotelSearch",
|
|
1775
1742
|
name: "Amadeus Hotel Search",
|
|
1776
1743
|
description: "Search for local and international hotels.",
|
|
@@ -1783,7 +1750,7 @@ var TEST_SERVICES = [
|
|
|
1783
1750
|
}
|
|
1784
1751
|
]
|
|
1785
1752
|
}),
|
|
1786
|
-
|
|
1753
|
+
createStatic(ServiceType, {
|
|
1787
1754
|
serviceId: "visualcrossing.com/service/Weather",
|
|
1788
1755
|
name: "Visual Crossing Weather",
|
|
1789
1756
|
description: "Search for global weather forecasts.",
|
|
@@ -1797,7 +1764,7 @@ var TEST_SERVICES = [
|
|
|
1797
1764
|
]
|
|
1798
1765
|
}),
|
|
1799
1766
|
// TODO(burdon): Needs auth.
|
|
1800
|
-
|
|
1767
|
+
createStatic(ServiceType, {
|
|
1801
1768
|
serviceId: "abstractapi.com/service/GeoLocation",
|
|
1802
1769
|
name: "Abstract GeoLocation",
|
|
1803
1770
|
description: "Get the location of any IP address.",
|
|
@@ -1814,7 +1781,7 @@ var TEST_SERVICES = [
|
|
|
1814
1781
|
//
|
|
1815
1782
|
...Array.from({
|
|
1816
1783
|
length: 20
|
|
1817
|
-
}, (_, i) =>
|
|
1784
|
+
}, (_, i) => createStatic(ServiceType, {
|
|
1818
1785
|
serviceId: `example.com/service/test-${i}`,
|
|
1819
1786
|
name: `Test ${i}`,
|
|
1820
1787
|
description: `Test ${i}`,
|
|
@@ -1828,6 +1795,23 @@ var TEST_SERVICES = [
|
|
|
1828
1795
|
}))
|
|
1829
1796
|
];
|
|
1830
1797
|
|
|
1798
|
+
// packages/plugins/plugin-assistant/src/hooks/useServices.ts
|
|
1799
|
+
var useServices = (space, query) => {
|
|
1800
|
+
const registry = useMemo5(() => new MockServiceRegistry(), []);
|
|
1801
|
+
const [services, setServices] = useState6([]);
|
|
1802
|
+
useEffect5(() => {
|
|
1803
|
+
const t = setTimeout(async () => {
|
|
1804
|
+
const services2 = await registry.queryServices(query);
|
|
1805
|
+
setServices(services2);
|
|
1806
|
+
});
|
|
1807
|
+
return () => clearTimeout(t);
|
|
1808
|
+
}, [
|
|
1809
|
+
query,
|
|
1810
|
+
registry
|
|
1811
|
+
]);
|
|
1812
|
+
return services;
|
|
1813
|
+
};
|
|
1814
|
+
|
|
1831
1815
|
// packages/plugins/plugin-assistant/src/hooks/useTextInputEvents.ts
|
|
1832
1816
|
import { useState as useState7, useCallback as useCallback2 } from "react";
|
|
1833
1817
|
|
|
@@ -1894,36 +1878,15 @@ var ThreadContainer = ({ classNames, chat, settings, part, associatedArtifact, o
|
|
|
1894
1878
|
associatedArtifact
|
|
1895
1879
|
});
|
|
1896
1880
|
const messageQueue = useMessageQueue(chat);
|
|
1897
|
-
const { dispatchPromise: dispatch } = useIntentDispatcher2();
|
|
1898
1881
|
const messages = [
|
|
1899
1882
|
...messageQueue?.items ?? [],
|
|
1900
1883
|
...processor.messages.value
|
|
1901
1884
|
];
|
|
1902
|
-
useEffect6(() => {
|
|
1903
|
-
if (!processor.streaming.value && messageQueue?.items) {
|
|
1904
|
-
const message = messageQueue.items[messageQueue.items.length - 1];
|
|
1905
|
-
if (space && chat && message && dispatch && associatedArtifact) {
|
|
1906
|
-
void dispatch(createIntent(CollaborationActions.InsertContent, {
|
|
1907
|
-
spaceId: space.id,
|
|
1908
|
-
target: makeRef(associatedArtifact),
|
|
1909
|
-
object: refFromDXN(new DXN3(DXN3.kind.QUEUE, [
|
|
1910
|
-
...chat.assistantChatQueue.dxn.parts,
|
|
1911
|
-
message.id
|
|
1912
|
-
])),
|
|
1913
|
-
label: "View proposal"
|
|
1914
|
-
}));
|
|
1915
|
-
}
|
|
1916
|
-
}
|
|
1917
|
-
}, [
|
|
1918
|
-
messageQueue,
|
|
1919
|
-
associatedArtifact,
|
|
1920
|
-
processor.streaming.value
|
|
1921
|
-
]);
|
|
1922
1885
|
const handleSubmit = useCallback3((text) => {
|
|
1923
1886
|
if (processor.streaming.value) {
|
|
1924
1887
|
log10.warn("ignoring submit; still processing.", void 0, {
|
|
1925
1888
|
F: __dxlog_file9,
|
|
1926
|
-
L:
|
|
1889
|
+
L: 44,
|
|
1927
1890
|
S: void 0,
|
|
1928
1891
|
C: (f, a) => f(...a)
|
|
1929
1892
|
});
|
|
@@ -1932,7 +1895,7 @@ var ThreadContainer = ({ classNames, chat, settings, part, associatedArtifact, o
|
|
|
1932
1895
|
onOpenChange?.(true);
|
|
1933
1896
|
invariant6(messageQueue, void 0, {
|
|
1934
1897
|
F: __dxlog_file9,
|
|
1935
|
-
L:
|
|
1898
|
+
L: 50,
|
|
1936
1899
|
S: void 0,
|
|
1937
1900
|
A: [
|
|
1938
1901
|
"messageQueue",
|
|
@@ -1965,24 +1928,25 @@ var ThreadContainer = ({ classNames, chat, settings, part, associatedArtifact, o
|
|
|
1965
1928
|
processing: processor.streaming.value,
|
|
1966
1929
|
error: processor.error.value,
|
|
1967
1930
|
tools: processor.tools,
|
|
1968
|
-
contextProvider,
|
|
1969
1931
|
onSubmit: handleSubmit,
|
|
1970
1932
|
onCancel: handleCancel,
|
|
1971
1933
|
onPrompt: handleSubmit,
|
|
1972
1934
|
onOpenChange,
|
|
1935
|
+
contextProvider,
|
|
1973
1936
|
...props
|
|
1974
1937
|
});
|
|
1975
1938
|
};
|
|
1976
1939
|
|
|
1977
1940
|
export {
|
|
1978
|
-
Toolbox,
|
|
1979
|
-
ToolboxContainer,
|
|
1980
|
-
Thread,
|
|
1981
1941
|
AiClient,
|
|
1982
1942
|
AppGraphBuilder,
|
|
1983
1943
|
IntentResolver,
|
|
1984
1944
|
ReactSurface,
|
|
1985
|
-
|
|
1945
|
+
AssistantSettings,
|
|
1946
|
+
useServices,
|
|
1947
|
+
Toolbox,
|
|
1948
|
+
ToolboxContainer,
|
|
1949
|
+
Thread,
|
|
1986
1950
|
ThreadContainer
|
|
1987
1951
|
};
|
|
1988
|
-
//# sourceMappingURL=chunk-
|
|
1952
|
+
//# sourceMappingURL=chunk-FMB7RGMP.mjs.map
|