@dxos/plugin-assistant 0.8.0 → 0.8.1-main.81238a8
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-TX6YYBUG.mjs → AssistantDialog-L5RHNMU4.mjs} +6 -5
- package/dist/lib/browser/{AssistantDialog-TX6YYBUG.mjs.map → AssistantDialog-L5RHNMU4.mjs.map} +3 -3
- package/dist/lib/browser/{ChatContainer-AT3OAUT3.mjs → ChatContainer-EEEVE62F.mjs} +5 -5
- package/dist/lib/browser/TemplateContainer-7IQ6V5AD.mjs +78 -0
- package/dist/lib/browser/TemplateContainer-7IQ6V5AD.mjs.map +7 -0
- package/dist/lib/browser/ai-client-BAPVMSNX.mjs +35 -0
- package/dist/lib/browser/ai-client-BAPVMSNX.mjs.map +7 -0
- package/dist/lib/browser/{app-graph-builder-AXAIFOGV.mjs → app-graph-builder-DTCUWBKB.mjs} +57 -13
- package/dist/lib/browser/app-graph-builder-DTCUWBKB.mjs.map +7 -0
- package/dist/lib/browser/{chunk-G7B54APW.mjs → chunk-5RMJYOT7.mjs} +34 -12
- package/dist/lib/browser/chunk-5RMJYOT7.mjs.map +7 -0
- package/dist/lib/browser/{chunk-EUMPBC4T.mjs → chunk-6FTPLBSC.mjs} +2 -2
- package/dist/lib/browser/{chunk-NV7SVHMV.mjs → chunk-AF7VQAKS.mjs} +1 -1
- package/dist/lib/browser/{chunk-NV7SVHMV.mjs.map → chunk-AF7VQAKS.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-VZ4W6SHE.mjs → chunk-SVUCJXGN.mjs} +2 -2
- package/dist/lib/browser/chunk-SVUCJXGN.mjs.map +7 -0
- package/dist/lib/browser/{chunk-FRIKXDDQ.mjs → chunk-X6ALDUA5.mjs} +26 -4
- package/dist/lib/browser/chunk-X6ALDUA5.mjs.map +7 -0
- package/dist/lib/browser/{chunk-NFVIZS3B.mjs → chunk-XFUCWOMV.mjs} +287 -70
- package/dist/lib/browser/chunk-XFUCWOMV.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +21 -11
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-QRVRZL6K.mjs → intent-resolver-U57FXP3I.mjs} +6 -3
- package/dist/lib/browser/{intent-resolver-QRVRZL6K.mjs.map → intent-resolver-U57FXP3I.mjs.map} +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-JLXNWOI6.mjs → react-surface-KFLHNDNR.mjs} +10 -9
- package/dist/lib/browser/react-surface-KFLHNDNR.mjs.map +7 -0
- package/dist/lib/browser/{settings-JTT62IHD.mjs → settings-VAW6UWFL.mjs} +3 -3
- package/dist/lib/browser/types/index.mjs +6 -2
- package/dist/lib/node/{AssistantDialog-U4GBPZD6.cjs → AssistantDialog-VIB7GPQN.cjs} +12 -11
- package/dist/lib/node/{AssistantDialog-U4GBPZD6.cjs.map → AssistantDialog-VIB7GPQN.cjs.map} +3 -3
- package/dist/lib/node/{ChatContainer-CVHXNHGA.cjs → ChatContainer-BPI3GEZS.cjs} +10 -10
- package/dist/lib/node/TemplateContainer-VPAZRFQA.cjs +104 -0
- package/dist/lib/node/TemplateContainer-VPAZRFQA.cjs.map +7 -0
- package/dist/lib/node/{ai-client-YANJEPO3.cjs → ai-client-5ESLYXAV.cjs} +19 -8
- package/dist/lib/node/ai-client-5ESLYXAV.cjs.map +7 -0
- package/dist/lib/node/{app-graph-builder-D7SHQTZS.cjs → app-graph-builder-3P6WSON2.cjs} +63 -20
- package/dist/lib/node/app-graph-builder-3P6WSON2.cjs.map +7 -0
- package/dist/lib/node/{chunk-37GI4NYH.cjs → chunk-KLSNCP34.cjs} +33 -9
- package/dist/lib/node/chunk-KLSNCP34.cjs.map +7 -0
- package/dist/lib/node/{chunk-NV4TQQSU.cjs → chunk-N3SW6DJ6.cjs} +6 -6
- package/dist/lib/node/{chunk-XUTDR7HI.cjs → chunk-OJJ4F6KP.cjs} +291 -78
- package/dist/lib/node/chunk-OJJ4F6KP.cjs.map +7 -0
- package/dist/lib/node/{chunk-GNPXCHFT.cjs → chunk-U6J2GO7I.cjs} +4 -4
- package/dist/lib/node/{chunk-GNPXCHFT.cjs.map → chunk-U6J2GO7I.cjs.map} +2 -2
- package/dist/lib/node/{chunk-ZGH6F5YA.cjs → chunk-VRXFIS4X.cjs} +6 -6
- package/dist/lib/node/chunk-VRXFIS4X.cjs.map +7 -0
- package/dist/lib/node/{chunk-IXJCGW7U.cjs → chunk-WFVOWPKV.cjs} +40 -18
- package/dist/lib/node/chunk-WFVOWPKV.cjs.map +7 -0
- package/dist/lib/node/index.cjs +73 -63
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-YMMAFVOB.cjs → intent-resolver-YIFAMM3B.cjs} +13 -10
- package/dist/lib/node/{intent-resolver-YMMAFVOB.cjs.map → intent-resolver-YIFAMM3B.cjs.map} +3 -3
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-BSUZQ3HZ.cjs → react-surface-REI6G6B3.cjs} +25 -24
- package/dist/lib/node/react-surface-REI6G6B3.cjs.map +7 -0
- package/dist/lib/node/{settings-4YEO7KXF.cjs → settings-2FEYGLYU.cjs} +8 -8
- package/dist/lib/node/types/index.cjs +15 -11
- package/dist/lib/node/types/index.cjs.map +2 -2
- package/dist/lib/node-esm/{AssistantDialog-5AT5JAZL.mjs → AssistantDialog-R3EPF2KL.mjs} +6 -5
- package/dist/lib/node-esm/{AssistantDialog-5AT5JAZL.mjs.map → AssistantDialog-R3EPF2KL.mjs.map} +3 -3
- package/dist/lib/node-esm/{ChatContainer-VR766C4M.mjs → ChatContainer-UJ7MV7GU.mjs} +5 -5
- package/dist/lib/node-esm/TemplateContainer-YLA6BJY6.mjs +79 -0
- package/dist/lib/node-esm/TemplateContainer-YLA6BJY6.mjs.map +7 -0
- package/dist/lib/node-esm/ai-client-XYZ5N7CR.mjs +36 -0
- package/dist/lib/node-esm/ai-client-XYZ5N7CR.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-H2GC2AZA.mjs → app-graph-builder-PMAQLTTN.mjs} +57 -13
- package/dist/lib/node-esm/app-graph-builder-PMAQLTTN.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-77ARTFBA.mjs → chunk-2CIYX3SD.mjs} +2 -2
- package/dist/lib/node-esm/chunk-2CIYX3SD.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-AMQMVQJO.mjs → chunk-6GBMQIW7.mjs} +34 -12
- package/dist/lib/node-esm/chunk-6GBMQIW7.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-7JENJTLB.mjs → chunk-AMTHOYNB.mjs} +287 -70
- package/dist/lib/node-esm/chunk-AMTHOYNB.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-LBQGJE5T.mjs → chunk-J63VQFQO.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-7SV6X6XU.mjs → chunk-N6BVC2C2.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-7SV6X6XU.mjs.map → chunk-N6BVC2C2.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-CJ4Y3QW5.mjs → chunk-NMMRHHAR.mjs} +26 -4
- package/dist/lib/node-esm/chunk-NMMRHHAR.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +21 -11
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-MR7BOKEW.mjs → intent-resolver-SQ4HLL5L.mjs} +6 -3
- package/dist/lib/node-esm/{intent-resolver-MR7BOKEW.mjs.map → intent-resolver-SQ4HLL5L.mjs.map} +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-IGVYAOGL.mjs → react-surface-LE57AGPI.mjs} +10 -9
- package/dist/lib/node-esm/react-surface-LE57AGPI.mjs.map +7 -0
- package/dist/lib/node-esm/{settings-S7P5RWQI.mjs → settings-VHR5KT4J.mjs} +3 -3
- package/dist/lib/node-esm/types/index.mjs +6 -2
- package/dist/types/src/AssistantPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/ai-client.d.ts +2 -2
- 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/capabilities.d.ts +3 -2
- package/dist/types/src/capabilities/capabilities.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/AmbientDialog/AmbientDialog.d.ts +2 -2
- package/dist/types/src/components/AmbientDialog/AmbientDialog.d.ts.map +1 -1
- package/dist/types/src/components/AssistantDialog.d.ts.map +1 -1
- package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts +2 -1
- package/dist/types/src/components/AssistantSettings/AssistantSettings.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer.d.ts +2 -1
- package/dist/types/src/components/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/Prompt/Prompt.d.ts +3 -0
- package/dist/types/src/components/Prompt/Prompt.d.ts.map +1 -1
- package/dist/types/src/components/Prompt/Prompt.stories.d.ts +1 -0
- package/dist/types/src/components/Prompt/Prompt.stories.d.ts.map +1 -1
- package/dist/types/src/components/Prompt/PromptBar.d.ts +3 -2
- package/dist/types/src/components/Prompt/PromptBar.d.ts.map +1 -1
- package/dist/types/src/components/Prompt/references.d.ts +30 -0
- package/dist/types/src/components/Prompt/references.d.ts.map +1 -0
- package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts +2 -1
- package/dist/types/src/components/ServiceRegistry/ServiceRegistry.d.ts.map +1 -1
- package/dist/types/src/components/TemplateContainer.d.ts +2 -1
- package/dist/types/src/components/TemplateContainer.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts +2 -1
- package/dist/types/src/components/TemplateEditor/TemplateEditor.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts +2 -1
- package/dist/types/src/components/TemplateEditor/TemplateEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts +3 -2
- package/dist/types/src/components/TemplateEditor/TemplateForm.d.ts.map +1 -1
- package/dist/types/src/components/Thread/Thread.d.ts +12 -1
- package/dist/types/src/components/Thread/Thread.d.ts.map +1 -1
- package/dist/types/src/components/Thread/ThreadContainer.d.ts +1 -0
- package/dist/types/src/components/Thread/ThreadContainer.d.ts.map +1 -1
- package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts +2 -1
- package/dist/types/src/components/Thread/ThreadContainer.stories.d.ts.map +1 -1
- package/dist/types/src/components/Thread/ThreadMessage.d.ts.map +1 -1
- package/dist/types/src/components/Toolbox/Toolbox.d.ts +4 -3
- package/dist/types/src/components/Toolbox/Toolbox.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +2 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +1 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/invocation-handler.d.ts +1 -1
- package/dist/types/src/hooks/invocation-handler.d.ts.map +1 -1
- package/dist/types/src/hooks/processor.d.ts +8 -5
- package/dist/types/src/hooks/processor.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatProcessor.d.ts +9 -2
- package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -1
- package/dist/types/src/hooks/useContextProvider.d.ts +17 -0
- package/dist/types/src/hooks/useContextProvider.d.ts.map +1 -0
- package/dist/types/src/hooks/useMessageQueue.d.ts +4 -4
- package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +2 -8
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/testing/test-functions.d.ts.map +1 -1
- package/dist/types/src/tools/function.d.ts +1 -1
- package/dist/types/src/tools/function.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +21 -6
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/service.d.ts +1 -1
- package/dist/types/src/types/service.d.ts.map +1 -1
- package/dist/types/src/types/template.d.ts +36 -0
- package/dist/types/src/types/template.d.ts.map +1 -1
- package/dist/types/src/types/types.d.ts +3 -1
- package/dist/types/src/types/types.d.ts.map +1 -1
- package/package.json +56 -56
- package/src/AssistantPlugin.tsx +11 -2
- package/src/capabilities/ai-client.ts +23 -4
- package/src/capabilities/app-graph-builder.ts +48 -4
- package/src/capabilities/capabilities.ts +4 -2
- package/src/capabilities/intent-resolver.ts +1 -1
- package/src/capabilities/react-surface.tsx +3 -2
- package/src/components/AssistantDialog.tsx +7 -1
- package/src/components/AssistantSettings/AssistantSettings.tsx +39 -5
- package/src/components/Prompt/Prompt.stories.tsx +34 -0
- package/src/components/Prompt/Prompt.tsx +9 -2
- package/src/components/Prompt/PromptBar.tsx +18 -7
- package/src/components/Prompt/references.ts +180 -0
- package/src/components/TemplateContainer.tsx +79 -4
- package/src/components/TemplateEditor/TemplateEditor.stories.tsx +1 -1
- package/src/components/TemplateEditor/TemplateForm.stories.tsx +1 -1
- package/src/components/TemplateEditor/TemplateForm.tsx +1 -1
- package/src/components/Thread/Thread.tsx +21 -0
- package/src/components/Thread/ThreadContainer.stories.tsx +5 -8
- package/src/components/Thread/ThreadContainer.tsx +7 -4
- package/src/components/Thread/ThreadMessage.tsx +17 -9
- package/src/components/Toolbox/Toolbox.tsx +1 -1
- package/src/components/index.ts +3 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/invocation-handler.ts +3 -5
- package/src/hooks/processor.ts +18 -9
- package/src/hooks/useChatProcessor.tsx +24 -15
- package/src/hooks/useContextProvider.ts +55 -0
- package/src/hooks/useLocalTriggerManager.ts +1 -1
- package/src/hooks/useMessageQueue.ts +2 -4
- package/src/meta.ts +2 -2
- package/src/testing/test-functions.ts +2 -2
- package/src/tools/function.ts +2 -2
- package/src/tools/openapi.test.ts +4 -4
- package/src/translations.ts +8 -3
- package/src/types/service.ts +1 -1
- package/src/types/template.ts +22 -0
- package/src/types/types.ts +3 -1
- package/dist/lib/browser/TemplateContainer-B7MQNUPY.mjs +0 -23
- package/dist/lib/browser/TemplateContainer-B7MQNUPY.mjs.map +0 -7
- package/dist/lib/browser/ai-client-RTCGRKZE.mjs +0 -22
- package/dist/lib/browser/ai-client-RTCGRKZE.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-AXAIFOGV.mjs.map +0 -7
- package/dist/lib/browser/chunk-FRIKXDDQ.mjs.map +0 -7
- package/dist/lib/browser/chunk-G7B54APW.mjs.map +0 -7
- package/dist/lib/browser/chunk-NFVIZS3B.mjs.map +0 -7
- package/dist/lib/browser/chunk-VZ4W6SHE.mjs.map +0 -7
- package/dist/lib/browser/react-surface-JLXNWOI6.mjs.map +0 -7
- package/dist/lib/node/TemplateContainer-R4BZZP3E.cjs +0 -53
- package/dist/lib/node/TemplateContainer-R4BZZP3E.cjs.map +0 -7
- package/dist/lib/node/ai-client-YANJEPO3.cjs.map +0 -7
- package/dist/lib/node/app-graph-builder-D7SHQTZS.cjs.map +0 -7
- package/dist/lib/node/chunk-37GI4NYH.cjs.map +0 -7
- package/dist/lib/node/chunk-IXJCGW7U.cjs.map +0 -7
- package/dist/lib/node/chunk-XUTDR7HI.cjs.map +0 -7
- package/dist/lib/node/chunk-ZGH6F5YA.cjs.map +0 -7
- package/dist/lib/node/react-surface-BSUZQ3HZ.cjs.map +0 -7
- package/dist/lib/node-esm/TemplateContainer-WSHTZBB5.mjs +0 -24
- package/dist/lib/node-esm/TemplateContainer-WSHTZBB5.mjs.map +0 -7
- package/dist/lib/node-esm/ai-client-66IBZVCX.mjs +0 -23
- package/dist/lib/node-esm/ai-client-66IBZVCX.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-H2GC2AZA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-77ARTFBA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-7JENJTLB.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AMQMVQJO.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-CJ4Y3QW5.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-IGVYAOGL.mjs.map +0 -7
- /package/dist/lib/browser/{ChatContainer-AT3OAUT3.mjs.map → ChatContainer-EEEVE62F.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-EUMPBC4T.mjs.map → chunk-6FTPLBSC.mjs.map} +0 -0
- /package/dist/lib/browser/{settings-JTT62IHD.mjs.map → settings-VAW6UWFL.mjs.map} +0 -0
- /package/dist/lib/node/{ChatContainer-CVHXNHGA.cjs.map → ChatContainer-BPI3GEZS.cjs.map} +0 -0
- /package/dist/lib/node/{chunk-NV4TQQSU.cjs.map → chunk-N3SW6DJ6.cjs.map} +0 -0
- /package/dist/lib/node/{settings-4YEO7KXF.cjs.map → settings-2FEYGLYU.cjs.map} +0 -0
- /package/dist/lib/node-esm/{ChatContainer-VR766C4M.mjs.map → ChatContainer-UJ7MV7GU.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-LBQGJE5T.mjs.map → chunk-J63VQFQO.mjs.map} +0 -0
- /package/dist/lib/node-esm/{settings-S7P5RWQI.mjs.map → settings-VHR5KT4J.mjs.map} +0 -0
|
@@ -26,16 +26,16 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var AssistantDialog_VIB7GPQN_exports = {};
|
|
30
|
+
__export(AssistantDialog_VIB7GPQN_exports, {
|
|
31
31
|
AssistantDialog: () => AssistantDialog,
|
|
32
32
|
default: () => AssistantDialog_default
|
|
33
33
|
});
|
|
34
|
-
module.exports = __toCommonJS(
|
|
35
|
-
var
|
|
36
|
-
var
|
|
37
|
-
var
|
|
38
|
-
var
|
|
34
|
+
module.exports = __toCommonJS(AssistantDialog_VIB7GPQN_exports);
|
|
35
|
+
var import_chunk_OJJ4F6KP = require("./chunk-OJJ4F6KP.cjs");
|
|
36
|
+
var import_chunk_VRXFIS4X = require("./chunk-VRXFIS4X.cjs");
|
|
37
|
+
var import_chunk_KLSNCP34 = require("./chunk-KLSNCP34.cjs");
|
|
38
|
+
var import_chunk_U6J2GO7I = require("./chunk-U6J2GO7I.cjs");
|
|
39
39
|
var import_react = __toESM(require("react"));
|
|
40
40
|
var import_app_framework = require("@dxos/app-framework");
|
|
41
41
|
var import_plugin_transcription = require("@dxos/plugin-transcription");
|
|
@@ -117,18 +117,19 @@ var DialogHeader = ({ open, title, onToggle }) => {
|
|
|
117
117
|
})));
|
|
118
118
|
};
|
|
119
119
|
var AssistantDialog = ({ chat }) => {
|
|
120
|
-
const { t } = (0, import_react_ui.useTranslation)(
|
|
120
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_U6J2GO7I.ASSISTANT_PLUGIN);
|
|
121
121
|
const transcription = (0, import_app_framework.useCapabilities)(import_plugin_transcription.TranscriptionCapabilities.Transcription).length > 0;
|
|
122
|
-
const settings = (0, import_app_framework.useCapability)(import_app_framework.Capabilities.SettingsStore).getStore(
|
|
122
|
+
const settings = (0, import_app_framework.useCapability)(import_app_framework.Capabilities.SettingsStore).getStore(import_chunk_U6J2GO7I.ASSISTANT_PLUGIN)?.value;
|
|
123
123
|
const [open, setOpen] = (0, import_react.useState)(false);
|
|
124
124
|
return /* @__PURE__ */ import_react.default.createElement(AmbientDialog, {
|
|
125
125
|
open,
|
|
126
126
|
onOpenChange: setOpen,
|
|
127
127
|
title: t("assistant dialog title")
|
|
128
|
-
}, /* @__PURE__ */ import_react.default.createElement(
|
|
128
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_chunk_OJJ4F6KP.ThreadContainer, {
|
|
129
129
|
chat,
|
|
130
130
|
onOpenChange: setOpen,
|
|
131
131
|
settings,
|
|
132
|
+
part: "dialog",
|
|
132
133
|
transcription
|
|
133
134
|
}));
|
|
134
135
|
};
|
|
@@ -137,4 +138,4 @@ var AssistantDialog_default = AssistantDialog;
|
|
|
137
138
|
0 && (module.exports = {
|
|
138
139
|
AssistantDialog
|
|
139
140
|
});
|
|
140
|
-
//# sourceMappingURL=AssistantDialog-
|
|
141
|
+
//# sourceMappingURL=AssistantDialog-VIB7GPQN.cjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/AssistantDialog.tsx", "../../../src/components/AmbientDialog/AmbientDialog.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type FC, useState } from 'react';\n\nimport { useCapability, Capabilities, useCapabilities } from '@dxos/app-framework';\nimport { TranscriptionCapabilities } from '@dxos/plugin-transcription';\nimport { useTranslation } from '@dxos/react-ui';\n\nimport { AmbientDialog } from './AmbientDialog';\nimport { ThreadContainer } from './Thread';\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { type AssistantSettingsProps, type AIChatType } from '../types';\n\nexport const AssistantDialog: FC<{ chat?: AIChatType }> = ({ chat }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n const transcription = useCapabilities(TranscriptionCapabilities.Transcription).length > 0;\n const settings = useCapability(Capabilities.SettingsStore).getStore<AssistantSettingsProps>(ASSISTANT_PLUGIN)?.value;\n\n // TODO(burdon): Refocus when open.\n const [open, setOpen] = useState(false);\n\n return (\n <AmbientDialog open={open} onOpenChange={setOpen} title={t('assistant dialog title')}>\n <ThreadContainer
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,mBAAyC;AAEzC,2BAA6D;AAC7D,kCAA0C;AAC1C,sBAA+B;ACJ/B,IAAAA,gBAAgF;AAEhF,IAAAC,mBAAyC;AACzC,0BAAqE;AACrE,4BAAmB;AAEnB,IAAMC,iBAAiB,CAACC,UAAiBA,MAAMD,eAAc;AAE7D,IAAME,UAAU;AAGT,IAAMC,gBAAgB,CAAC,EAC5BC,UACAC,MAAMC,OACNC,OACAC,aAAY,MACkF;AAC9F,QAAM,CAACC,WAAWC,WAAAA,QAAeC,wBAAS,CAAA;AAC1C,QAAM,CAACC,MAAMC,OAAAA,QAAWF,wBAAe,aAAA;AACvC,QAAM,CAACN,MAAMS,OAAAA,QAAWH,wBAASL,KAAAA;AAGjCS,+BAAU,MAAA;AACRD,YAAQR,KAAAA;EACV,GAAG;IAACA;GAAM;AAGVS,+BAAU,MAAA;AACRF,YAAQR,OAAO,gBAAgBH,OAAAA;AAC/BQ,gBAAY,CAACM,QAAQA,MAAM,CAAA;EAC7B,GAAG;IAACX;GAAK;AAKT,QAAMY,mBAAeC,2BAAY,MAAA;AAC/BJ,YAAQ,CAACT,UAAAA;AACPG,qBAAe,CAACH,KAAAA;AAChB,aAAO,CAACA;IACV,CAAA;EACF,GAAG,CAAA,CAAE;AAEL,SACE,8BAAAc,QAAA,cAACC,OAAAA;IAAIC,MAAK;IAAOC,WAAU;IAAwDC,oBAAiB;KAClG,8BAAAJ,QAAA,cAACK,wBAAOC,SAAO;IACbC,YAAW;IACXC,iBAAAA;IACC,GAAGC;IACJC,OAAO;MACL,OAAGC,+BAAUlB,MAAM,YAAY,IAAA;MAC/BmB,cAAc;IAChB;IACAC,mBAAmBhC;KAEnB,8BAAAmB,QAAA,cAACc,kCAAAA;IACCjB,KAAKP;IACLyB,MAAK;IACLC,aAAY;IACZjC;IACAkC,cAAclC;IACdmC,cAAa;IACbC,cAAczB;MAGhB,8BAAAM,QAAA,cAACoB,cAAAA;IAAalC;IAAYE;IAAciC,UAAUvB;MAEjDb,QAAAA,CAAAA;AAIT;AAKA,IAAMmC,eAAe,CAAC,EAAElC,MAAME,OAAOiC,SAAQ,MAA4D;AACvG,SACE,8BAAArB,QAAA,cAACC,OAAAA;IAAIE,WAAU;KACb,8BAAAH,QAAA,cAACC,OAAAA;IAAIE,WAAU;KACb,8BAAAH,QAAA,cAACK,wBAAOiB,OAAK,MACX,8BAAAtB,QAAA,cAACuB,uBAAAA;IAAKC,MAAK;QAGf,8BAAAxB,QAAA,cAACC,OAAAA;IAAIE,WAAU;KACb,8BAAAH,QAAA,cAACK,wBAAOoB,OAAK;IAAClB,YAAW;KAA4CnB,KAAAA,CAAAA,GAEvE,8BAAAY,QAAA,cAACC,OAAAA;IAAIE,WAAU;KACb,8BAAAH,QAAA,cAAC0B,6BAAAA;IACCC,SAAQ;IACRH,MAAM;IACNjB,gBAAYqB,0BAAG,2CAA2C1C,QAAQ,oBAAA;IAClE2C,UAAAA;IACAC,OAAM;IACNC,SAASV;;AAKnB;ADvFO,IAAMW,kBAA6C,CAAC,EAAEC,KAAI,MAAE;AACjE,QAAM,EAAEC,EAAC,QAAKC,gCAAeC,sCAAAA;AAC7B,QAAMC,oBAAgBC,sCAAgBC,sDAA0BC,aAAa,EAAEC,SAAS;AACxF,QAAMC,eAAWC,oCAAcC,kCAAaC,aAAa,EAAEC,SAAiCV,sCAAAA,GAAmBW;AAG/G,QAAM,CAAC7D,MAAMS,OAAAA,QAAWH,aAAAA,UAAS,KAAA;AAEjC,SACEQ,6BAAAA,QAAA,cAAChB,eAAAA;IAAcE;IAAYG,cAAcM;IAASP,OAAO8C,EAAE,wBAAA;KACzDlC,6BAAAA,QAAA,cAACgD,uCAAAA;
|
|
6
|
-
"names": ["import_react", "import_react_ui", "preventDefault", "event", "minSize", "AmbientDialog", "children", "open", "_open", "title", "onOpenChange", "resizeKey", "setReizeKey", "useState", "size", "setSize", "setOpen", "useEffect", "key", "handleToggle", "useCallback", "React", "div", "role", "className", "data-block-align", "Dialog", "Content", "classNames", "inOverlayLayout", "resizeAttributes", "style", "sizeStyle", "maxBlockSize", "onInteractOutside", "ResizeHandle", "side", "defaultSize", "fallbackSize", "iconPosition", "onSizeChange", "DialogHeader", "onToggle", "Close", "Icon", "icon", "Title", "IconButton", "variant", "mx", "iconOnly", "label", "onClick", "AssistantDialog", "chat", "t", "useTranslation", "ASSISTANT_PLUGIN", "transcription", "useCapabilities", "TranscriptionCapabilities", "Transcription", "length", "settings", "useCapability", "Capabilities", "SettingsStore", "getStore", "value", "ThreadContainer"]
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type FC, useState } from 'react';\n\nimport { useCapability, Capabilities, useCapabilities } from '@dxos/app-framework';\nimport { TranscriptionCapabilities } from '@dxos/plugin-transcription';\nimport { useTranslation } from '@dxos/react-ui';\n\nimport { AmbientDialog } from './AmbientDialog';\nimport { ThreadContainer } from './Thread';\nimport { ASSISTANT_PLUGIN } from '../meta';\nimport { type AssistantSettingsProps, type AIChatType } from '../types';\n\nexport const AssistantDialog: FC<{ chat?: AIChatType }> = ({ chat }) => {\n const { t } = useTranslation(ASSISTANT_PLUGIN);\n const transcription = useCapabilities(TranscriptionCapabilities.Transcription).length > 0;\n const settings = useCapability(Capabilities.SettingsStore).getStore<AssistantSettingsProps>(ASSISTANT_PLUGIN)?.value;\n\n // TODO(burdon): Refocus when open.\n const [open, setOpen] = useState(false);\n\n return (\n <AmbientDialog open={open} onOpenChange={setOpen} title={t('assistant dialog title')}>\n <ThreadContainer\n chat={chat}\n onOpenChange={setOpen}\n settings={settings}\n part={'dialog'}\n transcription={transcription}\n />\n </AmbientDialog>\n );\n};\n\nexport default AssistantDialog;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type PropsWithChildren, useCallback, useEffect, useState } from 'react';\n\nimport { Dialog, Icon, IconButton } from '@dxos/react-ui';\nimport { resizeAttributes, ResizeHandle, type Size, sizeStyle } from '@dxos/react-ui-dnd';\nimport { mx } from '@dxos/react-ui-theme';\n\nconst preventDefault = (event: Event) => event.preventDefault();\n\nconst minSize = 5;\n\n// TODO(burdon): Factor out.\nexport const AmbientDialog = ({\n children,\n open: _open,\n title,\n onOpenChange,\n}: PropsWithChildren<{ open?: boolean; onOpenChange?: (open: boolean) => void; title?: string }>) => {\n const [resizeKey, setReizeKey] = useState(0);\n const [size, setSize] = useState<Size>('min-content');\n const [open, setOpen] = useState(_open);\n\n // Update controlled value.\n useEffect(() => {\n setOpen(_open);\n }, [_open]);\n\n // Update size and key.\n useEffect(() => {\n setSize(open ? 'min-content' : minSize);\n setReizeKey((key) => key + 1);\n }, [open]);\n\n // TODO(burdon): Animate open/close.\n // NOTE: We set the min size to 5rem (80px), and the header and prompt bar to 40px (i.e., the rail-size) each.\n // The dialog has no vertical padding and has box-content so that when closed it collapses to the size of the header and prompt bar.\n const handleToggle = useCallback(() => {\n setOpen((open) => {\n onOpenChange?.(!open);\n return !open;\n });\n }, []);\n\n return (\n <div role='none' className='dx-dialog__overlay bg-transparent pointer-events-none' data-block-align='end'>\n <Dialog.Content\n classNames='relative box-content py-0 px-2 md:is-[35rem] md:max-is-none overflow-hidden pointer-events-auto transition-[block-size] ease-in-out duration-0 [&:not([data-dx-resizing=\"true\"])]:duration-200'\n inOverlayLayout\n {...resizeAttributes}\n style={{\n ...sizeStyle(size, 'vertical', true),\n maxBlockSize: 'calc(100dvh - env(safe-area-inset-bottom) - env(safe-area-inset-top) - 8rem)',\n }}\n onInteractOutside={preventDefault}\n >\n <ResizeHandle\n key={resizeKey}\n side='block-start'\n defaultSize='min-content'\n minSize={minSize}\n fallbackSize={minSize}\n iconPosition='center'\n onSizeChange={setSize}\n />\n\n <DialogHeader open={open} title={title} onToggle={handleToggle} />\n\n {children}\n </Dialog.Content>\n </div>\n );\n};\n\n/**\n * Matches same layout grid as PromptBar.\n */\nconst DialogHeader = ({ open, title, onToggle }: { open?: boolean; title?: string; onToggle: () => void }) => {\n return (\n <div className='flex shrink-0 w-full grid grid-cols-[var(--rail-action)_1fr_var(--rail-action)] items-center overflow-hidden'>\n <div className='flex w-[--rail-action] h-[--rail-action] items-center justify-center'>\n <Dialog.Close>\n <Icon icon='ph--x--regular' />\n </Dialog.Close>\n </div>\n <div className='grow'>\n <Dialog.Title classNames='flex justify-center text-xs text-subdued'>{title}</Dialog.Title>\n </div>\n <div className='flex w-[--rail-action] h-[--rail-action] items-center justify-center'>\n <IconButton\n variant='ghost'\n icon={'ph--caret-up--regular'}\n classNames={mx('[&>svg]:transition [&>svg]:duration-200', open && '[&>svg]:rotate-180')}\n iconOnly\n label='Shrink'\n onClick={onToggle}\n />\n </div>\n </div>\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_react", "import_react_ui", "preventDefault", "event", "minSize", "AmbientDialog", "children", "open", "_open", "title", "onOpenChange", "resizeKey", "setReizeKey", "useState", "size", "setSize", "setOpen", "useEffect", "key", "handleToggle", "useCallback", "React", "div", "role", "className", "data-block-align", "Dialog", "Content", "classNames", "inOverlayLayout", "resizeAttributes", "style", "sizeStyle", "maxBlockSize", "onInteractOutside", "ResizeHandle", "side", "defaultSize", "fallbackSize", "iconPosition", "onSizeChange", "DialogHeader", "onToggle", "Close", "Icon", "icon", "Title", "IconButton", "variant", "mx", "iconOnly", "label", "onClick", "AssistantDialog", "chat", "t", "useTranslation", "ASSISTANT_PLUGIN", "transcription", "useCapabilities", "TranscriptionCapabilities", "Transcription", "length", "settings", "useCapability", "Capabilities", "SettingsStore", "getStore", "value", "ThreadContainer", "part"]
|
|
7
7
|
}
|
|
@@ -26,28 +26,28 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var ChatContainer_BPI3GEZS_exports = {};
|
|
30
|
+
__export(ChatContainer_BPI3GEZS_exports, {
|
|
31
31
|
ChatContainer: () => ChatContainer,
|
|
32
32
|
default: () => ChatContainer_default
|
|
33
33
|
});
|
|
34
|
-
module.exports = __toCommonJS(
|
|
35
|
-
var
|
|
36
|
-
var
|
|
37
|
-
var
|
|
38
|
-
var
|
|
34
|
+
module.exports = __toCommonJS(ChatContainer_BPI3GEZS_exports);
|
|
35
|
+
var import_chunk_OJJ4F6KP = require("./chunk-OJJ4F6KP.cjs");
|
|
36
|
+
var import_chunk_VRXFIS4X = require("./chunk-VRXFIS4X.cjs");
|
|
37
|
+
var import_chunk_KLSNCP34 = require("./chunk-KLSNCP34.cjs");
|
|
38
|
+
var import_chunk_U6J2GO7I = require("./chunk-U6J2GO7I.cjs");
|
|
39
39
|
var import_react = __toESM(require("react"));
|
|
40
40
|
var import_app_framework = require("@dxos/app-framework");
|
|
41
41
|
var import_plugin_transcription = require("@dxos/plugin-transcription");
|
|
42
42
|
var import_react_ui_stack = require("@dxos/react-ui-stack");
|
|
43
43
|
var ChatContainer = ({ chat, role }) => {
|
|
44
44
|
const transcription = (0, import_app_framework.useCapabilities)(import_plugin_transcription.TranscriptionCapabilities.Transcription).length > 0;
|
|
45
|
-
const settings = (0, import_app_framework.useCapability)(import_app_framework.Capabilities.SettingsStore).getStore(
|
|
45
|
+
const settings = (0, import_app_framework.useCapability)(import_app_framework.Capabilities.SettingsStore).getStore(import_chunk_U6J2GO7I.ASSISTANT_PLUGIN)?.value;
|
|
46
46
|
return /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.StackItem.Content, {
|
|
47
47
|
toolbar: false,
|
|
48
48
|
role,
|
|
49
49
|
classNames: "mli-auto w-full max-w-[50rem]"
|
|
50
|
-
}, /* @__PURE__ */ import_react.default.createElement(
|
|
50
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_chunk_OJJ4F6KP.ThreadContainer, {
|
|
51
51
|
chat,
|
|
52
52
|
settings,
|
|
53
53
|
transcription
|
|
@@ -58,4 +58,4 @@ var ChatContainer_default = ChatContainer;
|
|
|
58
58
|
0 && (module.exports = {
|
|
59
59
|
ChatContainer
|
|
60
60
|
});
|
|
61
|
-
//# sourceMappingURL=ChatContainer-
|
|
61
|
+
//# sourceMappingURL=ChatContainer-BPI3GEZS.cjs.map
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var TemplateContainer_VPAZRFQA_exports = {};
|
|
30
|
+
__export(TemplateContainer_VPAZRFQA_exports, {
|
|
31
|
+
TemplateContainer: () => TemplateContainer,
|
|
32
|
+
default: () => TemplateContainer_default
|
|
33
|
+
});
|
|
34
|
+
module.exports = __toCommonJS(TemplateContainer_VPAZRFQA_exports);
|
|
35
|
+
var import_chunk_N3SW6DJ6 = require("./chunk-N3SW6DJ6.cjs");
|
|
36
|
+
var import_chunk_KLSNCP34 = require("./chunk-KLSNCP34.cjs");
|
|
37
|
+
var import_chunk_U6J2GO7I = require("./chunk-U6J2GO7I.cjs");
|
|
38
|
+
var import_effect = require("effect");
|
|
39
|
+
var import_react = __toESM(require("react"));
|
|
40
|
+
var import_async = require("@dxos/async");
|
|
41
|
+
var import_react_ui = require("@dxos/react-ui");
|
|
42
|
+
var import_react_ui_stack = require("@dxos/react-ui-stack");
|
|
43
|
+
var TemplateContainer = ({ template, role }) => {
|
|
44
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_U6J2GO7I.ASSISTANT_PLUGIN);
|
|
45
|
+
const handleKindChange = (0, import_react.useCallback)((value) => {
|
|
46
|
+
const kind = import_effect.Match.type().pipe(import_effect.Match.withReturnType(), import_effect.Match.when("always", () => ({
|
|
47
|
+
include: "always"
|
|
48
|
+
})), import_effect.Match.when("schema-matching", () => ({
|
|
49
|
+
include: "schema-matching",
|
|
50
|
+
typename: ""
|
|
51
|
+
})), import_effect.Match.when("automatically", () => ({
|
|
52
|
+
include: "automatically",
|
|
53
|
+
description: ""
|
|
54
|
+
})), import_effect.Match.orElse(() => ({
|
|
55
|
+
include: "manual"
|
|
56
|
+
})))(value);
|
|
57
|
+
template.kind = kind;
|
|
58
|
+
}, [
|
|
59
|
+
template
|
|
60
|
+
]);
|
|
61
|
+
const handleTypenameChange = (0, import_react.useCallback)((0, import_async.debounce)((event) => {
|
|
62
|
+
if (template.kind.include === "schema-matching") {
|
|
63
|
+
template.kind.typename = event.target.value;
|
|
64
|
+
}
|
|
65
|
+
}, 300), [
|
|
66
|
+
template.kind.include
|
|
67
|
+
]);
|
|
68
|
+
const handleDescriptionChange = (0, import_react.useCallback)((0, import_async.debounce)((event) => {
|
|
69
|
+
if (template.kind.include === "automatically") {
|
|
70
|
+
template.kind.description = event.target.value;
|
|
71
|
+
}
|
|
72
|
+
}, 300), [
|
|
73
|
+
template.kind.include
|
|
74
|
+
]);
|
|
75
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react_ui_stack.StackItem.Content, {
|
|
76
|
+
toolbar: true,
|
|
77
|
+
role,
|
|
78
|
+
classNames: "mli-auto w-full max-w-[50rem]"
|
|
79
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Toolbar.Root, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Root, {
|
|
80
|
+
value: template.kind.include,
|
|
81
|
+
onValueChange: handleKindChange
|
|
82
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Toolbar.Button, {
|
|
83
|
+
asChild: true
|
|
84
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.TriggerButton, null)), /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Portal, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Content, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Viewport, null, import_chunk_KLSNCP34.TemplateKinds.map((kind) => /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Option, {
|
|
85
|
+
key: kind,
|
|
86
|
+
value: kind
|
|
87
|
+
}, kind)))))), template.kind.include === "schema-matching" && /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.Root, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.TextInput, {
|
|
88
|
+
placeholder: t("typename placeholder"),
|
|
89
|
+
defaultValue: template.kind.typename,
|
|
90
|
+
onChange: handleTypenameChange
|
|
91
|
+
})), template.kind.include === "automatically" && /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.Root, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.TextInput, {
|
|
92
|
+
placeholder: t("description placeholder"),
|
|
93
|
+
defaultValue: template.kind.description,
|
|
94
|
+
onChange: handleDescriptionChange
|
|
95
|
+
}))), /* @__PURE__ */ import_react.default.createElement(import_chunk_N3SW6DJ6.TemplateEditor, {
|
|
96
|
+
template
|
|
97
|
+
}));
|
|
98
|
+
};
|
|
99
|
+
var TemplateContainer_default = TemplateContainer;
|
|
100
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
101
|
+
0 && (module.exports = {
|
|
102
|
+
TemplateContainer
|
|
103
|
+
});
|
|
104
|
+
//# sourceMappingURL=TemplateContainer-VPAZRFQA.cjs.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 toolbar role={role} classNames='mli-auto w-full max-w-[50rem]'>\n {/* TODO(wittjosiah): Move this toolbar into c11y sidebar. */}\n <Toolbar.Root>\n <Select.Root value={template.kind.include} onValueChange={handleKindChange}>\n <Toolbar.Button asChild>\n <Select.TriggerButton />\n </Toolbar.Button>\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {TemplateKinds.map((kind) => (\n <Select.Option key={kind} value={kind}>\n {kind}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n {template.kind.include === 'schema-matching' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('typename placeholder')}\n defaultValue={template.kind.typename}\n onChange={handleTypenameChange}\n />\n </Input.Root>\n )}\n {template.kind.include === 'automatically' && (\n <Input.Root>\n <Input.TextInput\n placeholder={t('description placeholder')}\n defaultValue={template.kind.description}\n onChange={handleDescriptionChange}\n />\n </Input.Root>\n )}\n </Toolbar.Root>\n <TemplateEditor template={template} />\n </StackItem.Content>\n );\n};\n\nexport default TemplateContainer;\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,oBAAwC;AACxC,mBAAqD;AAErD,mBAAyB;AACzB,sBAAuD;AACvD,4BAA0B;AAMnB,IAAMA,oBAAoB,CAAC,EAAEC,UAAUC,KAAI,MAA4C;AAC5F,QAAM,EAAEC,EAAC,QAAKC,gCAAeC,sCAAAA;AAE7B,QAAMC,uBAAmBC,0BACvB,CAACC,UAAAA;AACC,UAAMC,OAAOC,oBAAMC,KAAI,EAAWC,KAChCF,oBAAMG,eAAc,GACpBH,oBAAMI,KAAK,UAAU,OAAO;MAAEC,SAAS;IAAS,EAAA,GAChDL,oBAAMI,KAAK,mBAAmB,OAAO;MAAEC,SAAS;MAAmBC,UAAU;IAAG,EAAA,GAChFN,oBAAMI,KAAK,iBAAiB,OAAO;MAAEC,SAAS;MAAiBE,aAAa;IAAG,EAAA,GAC/EP,oBAAMQ,OAAO,OAAO;MAAEH,SAAS;IAAS,EAAA,CAAA,EACxCP,KAAAA;AAEFP,aAASQ,OAAOA;EAClB,GACA;IAACR;GAAS;AAGZ,QAAMkB,2BAAuBZ,8BAC3Ba,uBAAS,CAACC,UAAAA;AACR,QAAIpB,SAASQ,KAAKM,YAAY,mBAAmB;AAC/Cd,eAASQ,KAAKO,WAAWK,MAAMC,OAAOd;IACxC;EACF,GAAG,GAAA,GACH;IAACP,SAASQ,KAAKM;GAAQ;AAGzB,QAAMQ,8BAA0BhB,8BAC9Ba,uBAAS,CAACC,UAAAA;AACR,QAAIpB,SAASQ,KAAKM,YAAY,iBAAiB;AAC7Cd,eAASQ,KAAKQ,cAAcI,MAAMC,OAAOd;IAC3C;EACF,GAAG,GAAA,GACH;IAACP,SAASQ,KAAKM;GAAQ;AAGzB,SACE,6BAAAS,QAAA,cAACC,gCAAUC,SAAO;IAACC,SAAAA;IAAQzB;IAAY0B,YAAW;KAEhD,6BAAAJ,QAAA,cAACK,wBAAQC,MAAI,MACX,6BAAAN,QAAA,cAACO,uBAAOD,MAAI;IAACtB,OAAOP,SAASQ,KAAKM;IAASiB,eAAe1B;KACxD,6BAAAkB,QAAA,cAACK,wBAAQI,QAAM;IAACC,SAAAA;KACd,6BAAAV,QAAA,cAACO,uBAAOI,eAAa,IAAA,CAAA,GAEvB,6BAAAX,QAAA,cAACO,uBAAOK,QAAM,MACZ,6BAAAZ,QAAA,cAACO,uBAAOL,SAAO,MACb,6BAAAF,QAAA,cAACO,uBAAOM,UAAQ,MACbC,oCAAcC,IAAI,CAAC9B,SAClB,6BAAAe,QAAA,cAACO,uBAAOS,QAAM;IAACC,KAAKhC;IAAMD,OAAOC;KAC9BA,IAAAA,CAAAA,CAAAA,CAAAA,CAAAA,CAAAA,GAOZR,SAASQ,KAAKM,YAAY,qBACzB,6BAAAS,QAAA,cAACkB,sBAAMZ,MAAI,MACT,6BAAAN,QAAA,cAACkB,sBAAMC,WAAS;IACdC,aAAazC,EAAE,sBAAA;IACf0C,cAAc5C,SAASQ,KAAKO;IAC5B8B,UAAU3B;OAIflB,SAASQ,KAAKM,YAAY,mBACzB,6BAAAS,QAAA,cAACkB,sBAAMZ,MAAI,MACT,6BAAAN,QAAA,cAACkB,sBAAMC,WAAS;IACdC,aAAazC,EAAE,yBAAA;IACf0C,cAAc5C,SAASQ,KAAKQ;IAC5B6B,UAAUvB;QAKlB,6BAAAC,QAAA,cAACuB,sCAAAA;IAAe9C;;AAGtB;AAEA,IAAA,4BAAeD;",
|
|
6
|
+
"names": ["TemplateContainer", "template", "role", "t", "useTranslation", "ASSISTANT_PLUGIN", "handleKindChange", "useCallback", "value", "kind", "Match", "type", "pipe", "withReturnType", "when", "include", "typename", "description", "orElse", "handleTypenameChange", "debounce", "event", "target", "handleDescriptionChange", "React", "StackItem", "Content", "toolbar", "classNames", "Toolbar", "Root", "Select", "onValueChange", "Button", "asChild", "TriggerButton", "Portal", "Viewport", "TemplateKinds", "map", "Option", "key", "Input", "TextInput", "placeholder", "defaultValue", "onChange", "TemplateEditor"]
|
|
7
|
+
}
|
|
@@ -16,13 +16,14 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var ai_client_5ESLYXAV_exports = {};
|
|
20
|
+
__export(ai_client_5ESLYXAV_exports, {
|
|
21
21
|
default: () => ai_client_default
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
24
|
-
var
|
|
25
|
-
var
|
|
23
|
+
module.exports = __toCommonJS(ai_client_5ESLYXAV_exports);
|
|
24
|
+
var import_chunk_VRXFIS4X = require("./chunk-VRXFIS4X.cjs");
|
|
25
|
+
var import_chunk_U6J2GO7I = require("./chunk-U6J2GO7I.cjs");
|
|
26
|
+
var import_signals_core = require("@preact/signals-core");
|
|
26
27
|
var import_app_framework = require("@dxos/app-framework");
|
|
27
28
|
var import_assistant = require("@dxos/assistant");
|
|
28
29
|
var import_plugin_client = require("@dxos/plugin-client");
|
|
@@ -30,9 +31,19 @@ var DEFAULT_AI_SERVICE_URL = "http://localhost:8788";
|
|
|
30
31
|
var ai_client_default = (context) => {
|
|
31
32
|
const client = context.requestCapability(import_plugin_client.ClientCapabilities.Client);
|
|
32
33
|
const endpoint = client.config.values.runtime?.services?.ai?.server ?? DEFAULT_AI_SERVICE_URL;
|
|
33
|
-
const
|
|
34
|
+
const ai = (0, import_signals_core.signal)(new import_assistant.AIServiceEdgeClient({
|
|
34
35
|
endpoint
|
|
36
|
+
}));
|
|
37
|
+
const unsubscribe = (0, import_signals_core.effect)(() => {
|
|
38
|
+
const settings = context.requestCapability(import_app_framework.Capabilities.SettingsStore).getStore(import_chunk_U6J2GO7I.ASSISTANT_PLUGIN)?.value;
|
|
39
|
+
if (settings?.llmProvider === "ollama") {
|
|
40
|
+
ai.value = new import_assistant.OllamaClient();
|
|
41
|
+
} else {
|
|
42
|
+
ai.value = new import_assistant.AIServiceEdgeClient({
|
|
43
|
+
endpoint
|
|
44
|
+
});
|
|
45
|
+
}
|
|
35
46
|
});
|
|
36
|
-
return (0, import_app_framework.contributes)(
|
|
47
|
+
return (0, import_app_framework.contributes)(import_chunk_VRXFIS4X.AssistantCapabilities.AiClient, ai, () => unsubscribe());
|
|
37
48
|
};
|
|
38
|
-
//# sourceMappingURL=ai-client-
|
|
49
|
+
//# sourceMappingURL=ai-client-5ESLYXAV.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 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 // 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,0BAA+B;AAE/B,2BAA+D;AAC/D,uBAAwE;AACxE,2BAAmC;AAOnC,IAAMA,yBAAyB;AAE/B,IAAA,oBAAe,CAACC,YAAAA;AACd,QAAMC,SAASD,QAAQE,kBAAkBC,wCAAmBC,MAAM;AAClE,QAAMC,WAAWJ,OAAOK,OAAOC,OAAOC,SAASC,UAAUC,IAAIC,UAAUZ;AAEvE,QAAMW,SAAKE,4BAAwB,IAAIC,qCAAoB;IAAER;EAAS,CAAA,CAAA;AAEtE,QAAMS,kBAAcC,4BAAO,MAAA;AAEzB,UAAMC,WAAWhB,QACdE,kBAAkBe,kCAAaC,aAAa,EAC5CC,SAAiCC,sCAAAA,GAAmBC;AAEvD,QAAIL,UAAUM,gBAAgB,UAAU;AACtCZ,SAAGW,QAAQ,IAAIE,8BAAAA;IACjB,OAAO;AACLb,SAAGW,QAAQ,IAAIR,qCAAoB;QAAER;MAAS,CAAA;IAChD;EACF,CAAA;AAEA,aAAOmB,kCAAYC,4CAAsBC,UAAUhB,IAAI,MAAMI,YAAAA,CAAAA;AAC/D;",
|
|
6
|
+
"names": ["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
|
+
}
|
|
@@ -16,24 +16,24 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var app_graph_builder_3P6WSON2_exports = {};
|
|
20
|
+
__export(app_graph_builder_3P6WSON2_exports, {
|
|
21
21
|
default: () => app_graph_builder_default
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
24
|
-
var
|
|
25
|
-
var
|
|
23
|
+
module.exports = __toCommonJS(app_graph_builder_3P6WSON2_exports);
|
|
24
|
+
var import_chunk_KLSNCP34 = require("./chunk-KLSNCP34.cjs");
|
|
25
|
+
var import_chunk_U6J2GO7I = require("./chunk-U6J2GO7I.cjs");
|
|
26
26
|
var import_app_framework = require("@dxos/app-framework");
|
|
27
27
|
var import_invariant = require("@dxos/invariant");
|
|
28
|
-
var import_log = require("@dxos/log");
|
|
29
28
|
var import_plugin_client = require("@dxos/plugin-client");
|
|
30
29
|
var import_plugin_graph = require("@dxos/plugin-graph");
|
|
30
|
+
var import_plugin_space = require("@dxos/plugin-space");
|
|
31
31
|
var import_types = require("@dxos/plugin-space/types");
|
|
32
32
|
var import_echo = require("@dxos/react-client/echo");
|
|
33
33
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/capabilities/app-graph-builder.ts";
|
|
34
34
|
var app_graph_builder_default = (context) => (0, import_app_framework.contributes)(import_app_framework.Capabilities.AppGraphBuilder, [
|
|
35
35
|
(0, import_plugin_graph.createExtension)({
|
|
36
|
-
id: `${
|
|
36
|
+
id: `${import_chunk_U6J2GO7I.ASSISTANT_PLUGIN}/assistant`,
|
|
37
37
|
filter: (node) => node.id === import_plugin_graph.ROOT_ID,
|
|
38
38
|
actions: () => [
|
|
39
39
|
{
|
|
@@ -57,17 +57,11 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
|
|
|
57
57
|
chat = await getOrCreateChat(dispatch, space);
|
|
58
58
|
}
|
|
59
59
|
if (!chat) {
|
|
60
|
-
import_log.log.warn("no chat found", void 0, {
|
|
61
|
-
F: __dxlog_file,
|
|
62
|
-
L: 54,
|
|
63
|
-
S: void 0,
|
|
64
|
-
C: (f, a) => f(...a)
|
|
65
|
-
});
|
|
66
60
|
return;
|
|
67
61
|
}
|
|
68
62
|
await dispatch((0, import_app_framework.createIntent)(import_app_framework.LayoutAction.UpdateDialog, {
|
|
69
63
|
part: "dialog",
|
|
70
|
-
subject:
|
|
64
|
+
subject: import_chunk_U6J2GO7I.ASSISTANT_DIALOG,
|
|
71
65
|
options: {
|
|
72
66
|
state: true,
|
|
73
67
|
blockAlign: "end",
|
|
@@ -81,7 +75,7 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
|
|
|
81
75
|
label: [
|
|
82
76
|
"open assistant label",
|
|
83
77
|
{
|
|
84
|
-
ns:
|
|
78
|
+
ns: import_chunk_U6J2GO7I.ASSISTANT_PLUGIN
|
|
85
79
|
}
|
|
86
80
|
],
|
|
87
81
|
icon: "ph--chat-centered-text--regular",
|
|
@@ -94,19 +88,68 @@ var app_graph_builder_default = (context) => (0, import_app_framework.contribute
|
|
|
94
88
|
}
|
|
95
89
|
}
|
|
96
90
|
]
|
|
91
|
+
}),
|
|
92
|
+
(0, import_plugin_graph.createExtension)({
|
|
93
|
+
id: `${import_chunk_U6J2GO7I.ASSISTANT_PLUGIN}/root`,
|
|
94
|
+
filter: (node) => (0, import_echo.isSpace)(node.data),
|
|
95
|
+
connector: ({ node }) => {
|
|
96
|
+
const templates = (0, import_plugin_space.memoizeQuery)(node.data, import_echo.Filter.schema(import_chunk_KLSNCP34.TemplateType));
|
|
97
|
+
return templates.length > 0 ? [
|
|
98
|
+
{
|
|
99
|
+
id: `${import_chunk_U6J2GO7I.ASSISTANT_PLUGIN}/templates`,
|
|
100
|
+
type: `${import_chunk_U6J2GO7I.ASSISTANT_PLUGIN}/templates`,
|
|
101
|
+
data: null,
|
|
102
|
+
properties: {
|
|
103
|
+
label: [
|
|
104
|
+
"templates label",
|
|
105
|
+
{
|
|
106
|
+
ns: import_chunk_U6J2GO7I.ASSISTANT_PLUGIN
|
|
107
|
+
}
|
|
108
|
+
],
|
|
109
|
+
icon: "ph--file-code--regular",
|
|
110
|
+
space: node.data
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
] : [];
|
|
114
|
+
}
|
|
115
|
+
}),
|
|
116
|
+
(0, import_plugin_graph.createExtension)({
|
|
117
|
+
id: `${import_chunk_U6J2GO7I.ASSISTANT_PLUGIN}/templates`,
|
|
118
|
+
filter: (node) => node.id === `${import_chunk_U6J2GO7I.ASSISTANT_PLUGIN}/templates`,
|
|
119
|
+
connector: ({ node }) => {
|
|
120
|
+
const templates = (0, import_plugin_space.memoizeQuery)(node.properties.space, import_echo.Filter.schema(import_chunk_KLSNCP34.TemplateType));
|
|
121
|
+
return templates.toSorted((a, b) => {
|
|
122
|
+
const nameA = a.name ?? "";
|
|
123
|
+
const nameB = b.name ?? "";
|
|
124
|
+
return nameA.localeCompare(nameB);
|
|
125
|
+
}).map((template) => ({
|
|
126
|
+
id: (0, import_echo.fullyQualifiedId)(template),
|
|
127
|
+
type: `${import_chunk_U6J2GO7I.ASSISTANT_PLUGIN}/template`,
|
|
128
|
+
data: template,
|
|
129
|
+
properties: {
|
|
130
|
+
label: template.name ?? [
|
|
131
|
+
"template title placeholder",
|
|
132
|
+
{
|
|
133
|
+
ns: import_chunk_U6J2GO7I.ASSISTANT_PLUGIN
|
|
134
|
+
}
|
|
135
|
+
],
|
|
136
|
+
icon: "ph--file-code--regular"
|
|
137
|
+
}
|
|
138
|
+
}));
|
|
139
|
+
}
|
|
97
140
|
})
|
|
98
141
|
]);
|
|
99
142
|
var getOrCreateChat = async (dispatch, space) => {
|
|
100
|
-
const { objects } = await space.db.query(import_echo.Filter.schema(
|
|
143
|
+
const { objects } = await space.db.query(import_echo.Filter.schema(import_chunk_KLSNCP34.AIChatType)).run();
|
|
101
144
|
if (objects.length > 0) {
|
|
102
145
|
return objects[objects.length - 1];
|
|
103
146
|
}
|
|
104
|
-
const { data } = await dispatch((0, import_app_framework.createIntent)(
|
|
147
|
+
const { data } = await dispatch((0, import_app_framework.createIntent)(import_chunk_KLSNCP34.AssistantAction.CreateChat, {
|
|
105
148
|
spaceId: space.id
|
|
106
149
|
}));
|
|
107
|
-
(0, import_invariant.invariant)(data?.object instanceof
|
|
150
|
+
(0, import_invariant.invariant)(data?.object instanceof import_chunk_KLSNCP34.AIChatType, void 0, {
|
|
108
151
|
F: __dxlog_file,
|
|
109
|
-
L:
|
|
152
|
+
L: 141,
|
|
110
153
|
S: void 0,
|
|
111
154
|
A: [
|
|
112
155
|
"data?.object instanceof AIChatType",
|
|
@@ -119,4 +162,4 @@ var getOrCreateChat = async (dispatch, space) => {
|
|
|
119
162
|
}));
|
|
120
163
|
return data.object;
|
|
121
164
|
};
|
|
122
|
-
//# sourceMappingURL=app-graph-builder-
|
|
165
|
+
//# sourceMappingURL=app-graph-builder-3P6WSON2.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/app-graph-builder.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\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 { createExtension, type Node, ROOT_ID } from '@dxos/plugin-graph';\nimport { memoizeQuery } from '@dxos/plugin-space';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { type Space, Filter, fullyQualifiedId, getSpace, isSpace } 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--chat-centered-text--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}/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": ["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", "isSpace", "connector", "templates", "memoizeQuery", "Filter", "schema", "TemplateType", "type", "toSorted", "a", "b", "nameA", "name", "nameB", "localeCompare", "map", "template", "fullyQualifiedId", "objects", "db", "query", "AIChatType", "run", "AssistantAction", "CreateChat", "spaceId", "invariant", "object", "SpaceAction", "AddObject", "target"]
|
|
7
|
+
}
|
|
@@ -16,8 +16,8 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var chunk_KLSNCP34_exports = {};
|
|
20
|
+
__export(chunk_KLSNCP34_exports, {
|
|
21
21
|
AIChatType: () => AIChatType,
|
|
22
22
|
ApiAuthorization: () => ApiAuthorization,
|
|
23
23
|
AssistantAction: () => AssistantAction,
|
|
@@ -25,15 +25,17 @@ __export(chunk_37GI4NYH_exports, {
|
|
|
25
25
|
ServiceType: () => ServiceType,
|
|
26
26
|
TemplateInputSchema: () => TemplateInputSchema,
|
|
27
27
|
TemplateInputType: () => TemplateInputType,
|
|
28
|
+
TemplateKindSchema: () => TemplateKindSchema,
|
|
29
|
+
TemplateKinds: () => TemplateKinds,
|
|
28
30
|
TemplateType: () => TemplateType,
|
|
29
31
|
categoryIcons: () => categoryIcons
|
|
30
32
|
});
|
|
31
|
-
module.exports = __toCommonJS(
|
|
32
|
-
var
|
|
33
|
+
module.exports = __toCommonJS(chunk_KLSNCP34_exports);
|
|
34
|
+
var import_chunk_U6J2GO7I = require("./chunk-U6J2GO7I.cjs");
|
|
33
35
|
var import_echo_schema = require("@dxos/echo-schema");
|
|
34
36
|
var import_conductor = require("@dxos/conductor");
|
|
35
37
|
var import_echo_schema2 = require("@dxos/echo-schema");
|
|
36
|
-
var
|
|
38
|
+
var import_types = require("@dxos/functions/types");
|
|
37
39
|
var import_echo_schema3 = require("@dxos/echo-schema");
|
|
38
40
|
var import_echo_schema4 = require("@dxos/echo-schema");
|
|
39
41
|
var AIChatType = class extends (0, import_echo_schema.TypedObject)({
|
|
@@ -65,7 +67,7 @@ var ApiAuthorizationOauth = import_echo_schema2.S.Struct({
|
|
|
65
67
|
var ApiAuthorization = import_echo_schema2.S.Union(ApiAuthorizationKey, ApiAuthorizationOauth);
|
|
66
68
|
var ServiceInterfaceFunction = import_echo_schema2.S.Struct({
|
|
67
69
|
kind: import_echo_schema2.S.Literal("function"),
|
|
68
|
-
fn: (0, import_echo_schema2.Ref)(
|
|
70
|
+
fn: (0, import_echo_schema2.Ref)(import_types.FunctionType)
|
|
69
71
|
});
|
|
70
72
|
var ServiceInterfaceWorkflow = import_echo_schema2.S.Struct({
|
|
71
73
|
kind: import_echo_schema2.S.Literal("workflow"),
|
|
@@ -129,11 +131,29 @@ var TemplateInputSchema = import_echo_schema3.S.mutable(import_echo_schema3.S.St
|
|
|
129
131
|
type: import_echo_schema3.S.optional(import_echo_schema3.S.Enums(TemplateInputType)),
|
|
130
132
|
value: import_echo_schema3.S.optional(import_echo_schema3.S.String)
|
|
131
133
|
}));
|
|
134
|
+
var TemplateKinds = [
|
|
135
|
+
"always",
|
|
136
|
+
"schema-matching",
|
|
137
|
+
"automatically",
|
|
138
|
+
"manual"
|
|
139
|
+
];
|
|
140
|
+
var TemplateKindSchema = import_echo_schema3.S.Union(import_echo_schema3.S.Struct({
|
|
141
|
+
include: import_echo_schema3.S.Literal("always")
|
|
142
|
+
}), import_echo_schema3.S.Struct({
|
|
143
|
+
include: import_echo_schema3.S.Literal("schema-matching"),
|
|
144
|
+
typename: import_echo_schema3.S.String
|
|
145
|
+
}), import_echo_schema3.S.Struct({
|
|
146
|
+
include: import_echo_schema3.S.Literal("automatically"),
|
|
147
|
+
description: import_echo_schema3.S.String
|
|
148
|
+
}), import_echo_schema3.S.Struct({
|
|
149
|
+
include: import_echo_schema3.S.Literal("manual")
|
|
150
|
+
}));
|
|
132
151
|
var TemplateType = class extends (0, import_echo_schema3.TypedObject)({
|
|
133
152
|
typename: "dxos.org/type/Template",
|
|
134
153
|
version: "0.1.0"
|
|
135
154
|
})({
|
|
136
155
|
name: import_echo_schema3.S.optional(import_echo_schema3.S.String),
|
|
156
|
+
kind: import_echo_schema3.S.mutable(TemplateKindSchema),
|
|
137
157
|
source: import_echo_schema3.S.String,
|
|
138
158
|
inputs: import_echo_schema3.S.optional(import_echo_schema3.S.mutable(import_echo_schema3.S.Array(TemplateInputSchema))),
|
|
139
159
|
command: import_echo_schema3.S.optional(import_echo_schema3.S.String)
|
|
@@ -141,7 +161,7 @@ var TemplateType = class extends (0, import_echo_schema3.TypedObject)({
|
|
|
141
161
|
};
|
|
142
162
|
var AssistantAction;
|
|
143
163
|
(function(AssistantAction2) {
|
|
144
|
-
const ASSISTANT_ACTION = `${
|
|
164
|
+
const ASSISTANT_ACTION = `${import_chunk_U6J2GO7I.ASSISTANT_PLUGIN}/action`;
|
|
145
165
|
class CreateChat extends import_echo_schema4.S.TaggedClass()(`${ASSISTANT_ACTION}/create-chat`, {
|
|
146
166
|
input: import_echo_schema4.S.Struct({
|
|
147
167
|
spaceId: import_echo_schema4.S.optional(import_echo_schema4.S.String),
|
|
@@ -165,7 +185,9 @@ var AssistantAction;
|
|
|
165
185
|
AssistantAction2.CreateTemplate = CreateTemplate;
|
|
166
186
|
})(AssistantAction || (AssistantAction = {}));
|
|
167
187
|
var AssistantSettingsSchema = import_echo_schema4.S.mutable(import_echo_schema4.S.Struct({
|
|
168
|
-
|
|
188
|
+
llmProvider: import_echo_schema4.S.optional(import_echo_schema4.S.Literal("edge", "ollama")),
|
|
189
|
+
edgeModel: import_echo_schema4.S.optional(import_echo_schema4.S.String),
|
|
190
|
+
ollamaModel: import_echo_schema4.S.optional(import_echo_schema4.S.String),
|
|
169
191
|
customPrompts: import_echo_schema4.S.optional(import_echo_schema4.S.Boolean)
|
|
170
192
|
}));
|
|
171
193
|
// Annotate the CommonJS export names for ESM import in node:
|
|
@@ -177,7 +199,9 @@ var AssistantSettingsSchema = import_echo_schema4.S.mutable(import_echo_schema4.
|
|
|
177
199
|
ServiceType,
|
|
178
200
|
TemplateInputSchema,
|
|
179
201
|
TemplateInputType,
|
|
202
|
+
TemplateKindSchema,
|
|
203
|
+
TemplateKinds,
|
|
180
204
|
TemplateType,
|
|
181
205
|
categoryIcons
|
|
182
206
|
});
|
|
183
|
-
//# sourceMappingURL=chunk-
|
|
207
|
+
//# sourceMappingURL=chunk-KLSNCP34.cjs.map
|