@dxos/plugin-assistant 0.7.5-staging.e6154f3 → 0.8.1-main.013e445
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-EIUUSXDS.mjs} +11 -10
- package/dist/lib/browser/AssistantDialog-EIUUSXDS.mjs.map +7 -0
- package/dist/lib/browser/{ChatContainer-AT3OAUT3.mjs → ChatContainer-NHHA6CSP.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-25APJ3ZK.mjs} +34 -12
- package/dist/lib/browser/chunk-25APJ3ZK.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-NFVIZS3B.mjs → chunk-KGIACFAX.mjs} +351 -207
- package/dist/lib/browser/chunk-KGIACFAX.mjs.map +7 -0
- 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/index.mjs +25 -27
- 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-YNN5NYJW.mjs} +10 -9
- package/dist/lib/browser/react-surface-YNN5NYJW.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-GT7R7MKH.cjs} +17 -16
- package/dist/lib/node/AssistantDialog-GT7R7MKH.cjs.map +7 -0
- package/dist/lib/node/{ChatContainer-CVHXNHGA.cjs → ChatContainer-JUZOEZZ7.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-IXJCGW7U.cjs → chunk-G2HY3UJ4.cjs} +40 -18
- package/dist/lib/node/chunk-G2HY3UJ4.cjs.map +7 -0
- package/dist/lib/node/{chunk-XUTDR7HI.cjs → chunk-JAB6KLPP.cjs} +356 -216
- package/dist/lib/node/chunk-JAB6KLPP.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-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/index.cjs +75 -77
- 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-IDGIN55C.cjs} +25 -24
- package/dist/lib/node/react-surface-IDGIN55C.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-JMBFM6QH.mjs} +11 -10
- package/dist/lib/node-esm/AssistantDialog-JMBFM6QH.mjs.map +7 -0
- package/dist/lib/node-esm/{ChatContainer-VR766C4M.mjs → ChatContainer-ZNN5CMVL.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-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/{chunk-7JENJTLB.mjs → chunk-PK5JCOYB.mjs} +351 -207
- package/dist/lib/node-esm/chunk-PK5JCOYB.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-AMQMVQJO.mjs → chunk-SMUINDXQ.mjs} +34 -12
- package/dist/lib/node-esm/chunk-SMUINDXQ.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +25 -27
- 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-424JZTZ4.mjs} +10 -9
- package/dist/lib/node-esm/react-surface-424JZTZ4.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 +5 -4
- 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/email.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 +10 -15
- 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 +23 -12
- 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 -4
- 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/AmbientDialog/AmbientDialog.tsx +11 -11
- 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 +28 -18
- 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 +7 -12
- 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/email.ts +3 -3
- package/src/hooks/index.ts +1 -0
- package/src/hooks/invocation-handler.ts +3 -5
- package/src/hooks/processor.ts +60 -110
- package/src/hooks/useChatProcessor.tsx +25 -17
- 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 +10 -5
- 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/AssistantDialog-TX6YYBUG.mjs.map +0 -7
- 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/AssistantDialog-U4GBPZD6.cjs.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/AssistantDialog-5AT5JAZL.mjs.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-NHHA6CSP.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-JUZOEZZ7.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-ZNN5CMVL.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,8 +26,8 @@ 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 chunk_JAB6KLPP_exports = {};
|
|
30
|
+
__export(chunk_JAB6KLPP_exports, {
|
|
31
31
|
AiClient: () => AiClient,
|
|
32
32
|
AppGraphBuilder: () => AppGraphBuilder,
|
|
33
33
|
AssistantSettings: () => AssistantSettings,
|
|
@@ -39,20 +39,20 @@ __export(chunk_XUTDR7HI_exports, {
|
|
|
39
39
|
ToolboxContainer: () => ToolboxContainer,
|
|
40
40
|
useServices: () => useServices
|
|
41
41
|
});
|
|
42
|
-
module.exports = __toCommonJS(
|
|
43
|
-
var
|
|
44
|
-
var
|
|
45
|
-
var
|
|
42
|
+
module.exports = __toCommonJS(chunk_JAB6KLPP_exports);
|
|
43
|
+
var import_chunk_VRXFIS4X = require("./chunk-VRXFIS4X.cjs");
|
|
44
|
+
var import_chunk_KLSNCP34 = require("./chunk-KLSNCP34.cjs");
|
|
45
|
+
var import_chunk_U6J2GO7I = require("./chunk-U6J2GO7I.cjs");
|
|
46
46
|
var import_react = __toESM(require("react"));
|
|
47
47
|
var import_app_framework = require("@dxos/app-framework");
|
|
48
48
|
var import_artifact = require("@dxos/artifact");
|
|
49
|
-
var
|
|
49
|
+
var import_types = require("@dxos/functions/types");
|
|
50
50
|
var import_log = require("@dxos/log");
|
|
51
51
|
var import_echo = require("@dxos/react-client/echo");
|
|
52
52
|
var import_react_ui_theme = require("@dxos/react-ui-theme");
|
|
53
53
|
var import_artifact2 = require("@dxos/artifact");
|
|
54
54
|
var import_echo_schema = require("@dxos/echo-schema");
|
|
55
|
-
var
|
|
55
|
+
var import_types2 = require("@dxos/functions/types");
|
|
56
56
|
var import_log2 = require("@dxos/log");
|
|
57
57
|
var import_echo2 = require("@dxos/react-client/echo");
|
|
58
58
|
var import_jsonpointer = __toESM(require("jsonpointer"));
|
|
@@ -78,12 +78,17 @@ var import_log4 = require("@dxos/log");
|
|
|
78
78
|
var import_react_ui_components3 = require("@dxos/react-ui-components");
|
|
79
79
|
var import_react_ui_syntax_highlighter2 = require("@dxos/react-ui-syntax-highlighter");
|
|
80
80
|
var import_util4 = require("@dxos/util");
|
|
81
|
+
var import_state = require("@codemirror/state");
|
|
81
82
|
var import_react5 = __toESM(require("react"));
|
|
82
83
|
var import_react_ui2 = require("@dxos/react-ui");
|
|
83
84
|
var import_react_ui_editor = require("@dxos/react-ui-editor");
|
|
84
85
|
var import_react_ui_theme4 = require("@dxos/react-ui-theme");
|
|
85
|
-
var
|
|
86
|
+
var import_state2 = require("@codemirror/state");
|
|
86
87
|
var import_view = require("@codemirror/view");
|
|
88
|
+
var import_autocomplete = require("@codemirror/autocomplete");
|
|
89
|
+
var import_state3 = require("@codemirror/state");
|
|
90
|
+
var import_view2 = require("@codemirror/view");
|
|
91
|
+
var import_async = require("@dxos/async");
|
|
87
92
|
var import_react6 = __toESM(require("react"));
|
|
88
93
|
var import_plugin_transcription = require("@dxos/plugin-transcription");
|
|
89
94
|
var import_react_ui3 = require("@dxos/react-ui");
|
|
@@ -94,55 +99,57 @@ var import_invariant3 = require("@dxos/invariant");
|
|
|
94
99
|
var import_log5 = require("@dxos/log");
|
|
95
100
|
var import_echo3 = require("@dxos/react-client/echo");
|
|
96
101
|
var import_signals_core = require("@preact/signals-core");
|
|
97
|
-
var import_artifact4 = require("@dxos/artifact");
|
|
98
102
|
var import_assistant = require("@dxos/assistant");
|
|
99
|
-
var import_echo_schema3 = require("@dxos/echo-schema");
|
|
100
103
|
var import_invariant4 = require("@dxos/invariant");
|
|
101
104
|
var import_log6 = require("@dxos/log");
|
|
102
105
|
var import_react8 = require("react");
|
|
103
106
|
var import_app_framework2 = require("@dxos/app-framework");
|
|
104
|
-
var
|
|
107
|
+
var import_artifact4 = require("@dxos/artifact");
|
|
105
108
|
var import_assistant2 = require("@dxos/assistant");
|
|
106
|
-
var
|
|
109
|
+
var import_types3 = require("@dxos/functions/types");
|
|
107
110
|
var import_log7 = require("@dxos/log");
|
|
108
111
|
var import_react_client = require("@dxos/react-client");
|
|
109
112
|
var import_echo4 = require("@dxos/react-client/echo");
|
|
110
113
|
var import_util5 = require("@dxos/util");
|
|
111
114
|
var import_app_framework3 = require("@dxos/app-framework");
|
|
112
115
|
var import_react9 = require("react");
|
|
113
|
-
var
|
|
116
|
+
var import_async2 = require("@dxos/async");
|
|
114
117
|
var import_context = require("@dxos/context");
|
|
115
|
-
var
|
|
116
|
-
var
|
|
118
|
+
var import_functions = require("@dxos/functions");
|
|
119
|
+
var import_types4 = require("@dxos/functions/types");
|
|
117
120
|
var import_invariant5 = require("@dxos/invariant");
|
|
118
121
|
var import_log8 = require("@dxos/log");
|
|
119
122
|
var import_react_client2 = require("@dxos/react-client");
|
|
120
123
|
var import_echo5 = require("@dxos/react-client/echo");
|
|
121
|
-
var
|
|
124
|
+
var import_async3 = require("@dxos/async");
|
|
122
125
|
var import_echo_db = require("@dxos/echo-db");
|
|
123
|
-
var
|
|
126
|
+
var import_types5 = require("@dxos/functions/types");
|
|
124
127
|
var import_invariant6 = require("@dxos/invariant");
|
|
125
128
|
var import_keys = require("@dxos/keys");
|
|
126
129
|
var import_log9 = require("@dxos/log");
|
|
127
130
|
var import_react10 = require("react");
|
|
128
131
|
var import_keys2 = require("@dxos/keys");
|
|
129
132
|
var import_echo6 = require("@dxos/react-client/echo");
|
|
130
|
-
var import_react_edge_client = require("@dxos/react-edge-client");
|
|
131
133
|
var import_react11 = require("react");
|
|
132
|
-
var
|
|
134
|
+
var import_artifact5 = require("@dxos/artifact");
|
|
133
135
|
var import_assistant3 = require("@dxos/assistant");
|
|
134
|
-
var
|
|
136
|
+
var import_echo_schema3 = require("@dxos/echo-schema");
|
|
135
137
|
var import_react12 = require("react");
|
|
138
|
+
var import_react13 = require("react");
|
|
139
|
+
var import_app_framework4 = require("@dxos/app-framework");
|
|
140
|
+
var import_echo_schema4 = require("@dxos/echo-schema");
|
|
141
|
+
var import_log10 = require("@dxos/log");
|
|
142
|
+
var import_echo7 = require("@dxos/react-client/echo");
|
|
136
143
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/tools/function.ts";
|
|
137
144
|
var covertFunctionToTool = (fn, edgeUrl, spaceId) => {
|
|
138
145
|
if (!fn.description || !fn.inputSchema) {
|
|
139
146
|
return void 0;
|
|
140
147
|
}
|
|
141
|
-
const existingFunctionUrl = (0,
|
|
148
|
+
const existingFunctionUrl = (0, import_types2.getUserFunctionUrlInMetadata)((0, import_echo2.getMeta)(fn));
|
|
142
149
|
if (!existingFunctionUrl) {
|
|
143
150
|
return void 0;
|
|
144
151
|
}
|
|
145
|
-
const url = (0,
|
|
152
|
+
const url = (0, import_types2.getInvocationUrl)(existingFunctionUrl, edgeUrl, {
|
|
146
153
|
spaceId
|
|
147
154
|
});
|
|
148
155
|
return (0, import_artifact2.defineTool)("user-function", {
|
|
@@ -609,7 +616,7 @@ var Section = ({ title, items, striped }) => {
|
|
|
609
616
|
};
|
|
610
617
|
var ToolboxContainer = ({ classNames, space }) => {
|
|
611
618
|
const artifactDefinitions = (0, import_app_framework.useCapabilities)(import_app_framework.Capabilities.ArtifactDefinition);
|
|
612
|
-
const services = (0, import_echo.useQuery)(space, import_echo.Filter.schema(
|
|
619
|
+
const services = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_chunk_KLSNCP34.ServiceType));
|
|
613
620
|
const [serviceTools, setServiceTools] = (0, import_react.useState)([]);
|
|
614
621
|
(0, import_react.useEffect)(() => {
|
|
615
622
|
(0, import_log.log)("creating service tools...", {
|
|
@@ -630,7 +637,7 @@ var ToolboxContainer = ({ classNames, space }) => {
|
|
|
630
637
|
}, [
|
|
631
638
|
services
|
|
632
639
|
]);
|
|
633
|
-
const functions = (0, import_echo.useQuery)(space, import_echo.Filter.schema(
|
|
640
|
+
const functions = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_types.FunctionType));
|
|
634
641
|
return /* @__PURE__ */ import_react.default.createElement(Toolbox, {
|
|
635
642
|
classNames,
|
|
636
643
|
artifacts: artifactDefinitions,
|
|
@@ -755,7 +762,7 @@ var ToolContainer = ({ classNames, items }) => {
|
|
|
755
762
|
};
|
|
756
763
|
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadMessage.tsx";
|
|
757
764
|
var panelClassNames = "flex flex-col w-full px-2 bg-groupSurface rounded-md";
|
|
758
|
-
var userClassNames = "bg-[--user-fill]";
|
|
765
|
+
var userClassNames = "bg-[--user-fill] text-inverse";
|
|
759
766
|
var ToggleContainer2 = (props) => {
|
|
760
767
|
return /* @__PURE__ */ import_react3.default.createElement(import_react_ui_components2.ToggleContainer, {
|
|
761
768
|
...props,
|
|
@@ -780,7 +787,7 @@ var ThreadMessage = ({ classNames, space, message, tools, onPrompt }) => {
|
|
|
780
787
|
const { role, content = [] } = message;
|
|
781
788
|
if (isToolMessage(message)) {
|
|
782
789
|
return /* @__PURE__ */ import_react3.default.createElement(MessageContainer, {
|
|
783
|
-
classNames
|
|
790
|
+
classNames: (0, import_react_ui_theme3.mx)(classNames, "animate-[fadeIn_0.5s]")
|
|
784
791
|
}, /* @__PURE__ */ import_react3.default.createElement(ToolBlock, {
|
|
785
792
|
space,
|
|
786
793
|
classNames: panelClassNames,
|
|
@@ -795,7 +802,7 @@ var ThreadMessage = ({ classNames, space, message, tools, onPrompt }) => {
|
|
|
795
802
|
const Component = components[block.type] ?? components.default;
|
|
796
803
|
return /* @__PURE__ */ import_react3.default.createElement(MessageContainer, {
|
|
797
804
|
key: idx,
|
|
798
|
-
classNames,
|
|
805
|
+
classNames: (0, import_react_ui_theme3.mx)(classNames, "animate-[fadeIn_0.5s]"),
|
|
799
806
|
user: block.type === "text" && role === "user"
|
|
800
807
|
}, /* @__PURE__ */ import_react3.default.createElement(Component, {
|
|
801
808
|
space,
|
|
@@ -811,7 +818,7 @@ var components = {
|
|
|
811
818
|
["text"]: ({ block }) => {
|
|
812
819
|
(0, import_invariant2.invariant)(block.type === "text", void 0, {
|
|
813
820
|
F: __dxlog_file5,
|
|
814
|
-
L:
|
|
821
|
+
L: 90,
|
|
815
822
|
S: void 0,
|
|
816
823
|
A: [
|
|
817
824
|
"block.type === 'text'",
|
|
@@ -821,6 +828,7 @@ var components = {
|
|
|
821
828
|
const title = block.disposition ? titles[block.disposition] : void 0;
|
|
822
829
|
if (!title) {
|
|
823
830
|
return /* @__PURE__ */ import_react3.default.createElement(import_react_ui_components2.MarkdownViewer, {
|
|
831
|
+
classNames: "[&>p]:animate-[fadeIn_0.5s]",
|
|
824
832
|
content: block.text
|
|
825
833
|
});
|
|
826
834
|
}
|
|
@@ -847,7 +855,7 @@ var components = {
|
|
|
847
855
|
["json"]: ({ space, block, onPrompt }) => {
|
|
848
856
|
(0, import_invariant2.invariant)(block.type === "json", void 0, {
|
|
849
857
|
F: __dxlog_file5,
|
|
850
|
-
L:
|
|
858
|
+
L: 128,
|
|
851
859
|
S: void 0,
|
|
852
860
|
A: [
|
|
853
861
|
"block.type === 'json'",
|
|
@@ -874,7 +882,10 @@ var components = {
|
|
|
874
882
|
}
|
|
875
883
|
case "select": {
|
|
876
884
|
const { options = [] } = (0, import_util3.safeParseJson)(block.json ?? "{}") ?? {};
|
|
877
|
-
return /* @__PURE__ */ import_react3.default.createElement(
|
|
885
|
+
return /* @__PURE__ */ import_react3.default.createElement("div", {
|
|
886
|
+
className: "flex flex-wrap gap-1"
|
|
887
|
+
}, options.map((option, idx) => /* @__PURE__ */ import_react3.default.createElement(import_react_ui.Button, {
|
|
888
|
+
classNames: "animate-[fadeIn_0.5s] rounded-2xl text-sm",
|
|
878
889
|
key: option,
|
|
879
890
|
onClick: () => onPrompt?.(option)
|
|
880
891
|
}, option)));
|
|
@@ -1020,7 +1031,7 @@ var createAutocompleteExtension = ({ onSubmit, onSuggest }) => {
|
|
|
1020
1031
|
}
|
|
1021
1032
|
}),
|
|
1022
1033
|
// Accept the current suggestion.
|
|
1023
|
-
|
|
1034
|
+
import_state2.Prec.highest(import_view.keymap.of([
|
|
1024
1035
|
{
|
|
1025
1036
|
key: "Tab",
|
|
1026
1037
|
preventDefault: true,
|
|
@@ -1109,9 +1120,120 @@ var InlineSuggestionWidget = class extends import_view.WidgetType {
|
|
|
1109
1120
|
return other.suffix === this.suffix;
|
|
1110
1121
|
}
|
|
1111
1122
|
};
|
|
1112
|
-
var
|
|
1123
|
+
var promptReferences = ({ provider, debug = false, triggerCharacter = "@" }) => {
|
|
1124
|
+
if (triggerCharacter.length !== 1) {
|
|
1125
|
+
throw new Error("triggerCharacter must be a single character");
|
|
1126
|
+
}
|
|
1127
|
+
const decorationField = import_view2.ViewPlugin.fromClass(class ReferenceView {
|
|
1128
|
+
constructor(view) {
|
|
1129
|
+
this._mutex = new import_async.Mutex();
|
|
1130
|
+
this.decorations = import_view2.Decoration.set([]);
|
|
1131
|
+
queueMicrotask(async () => {
|
|
1132
|
+
const guard = await this._mutex.acquire();
|
|
1133
|
+
try {
|
|
1134
|
+
this.decorations = await this._computeDecorations(view);
|
|
1135
|
+
} finally {
|
|
1136
|
+
guard.release();
|
|
1137
|
+
}
|
|
1138
|
+
});
|
|
1139
|
+
}
|
|
1140
|
+
update(update) {
|
|
1141
|
+
if (update.docChanged) {
|
|
1142
|
+
queueMicrotask(async () => {
|
|
1143
|
+
const guard = await this._mutex.acquire();
|
|
1144
|
+
try {
|
|
1145
|
+
this.decorations = await this._computeDecorations(update.view);
|
|
1146
|
+
} finally {
|
|
1147
|
+
guard.release();
|
|
1148
|
+
}
|
|
1149
|
+
});
|
|
1150
|
+
}
|
|
1151
|
+
}
|
|
1152
|
+
async _computeDecorations(view) {
|
|
1153
|
+
const text = view.state.doc.toString();
|
|
1154
|
+
const references = text.matchAll(new RegExp(`${triggerCharacter}[a-zA-Z0-9@:]+\\s`, "g"));
|
|
1155
|
+
const decorations = [];
|
|
1156
|
+
for (const match of references) {
|
|
1157
|
+
const reference = match[0];
|
|
1158
|
+
const uri = reference.slice(1, -1);
|
|
1159
|
+
const data = await provider.resolveReference({
|
|
1160
|
+
uri
|
|
1161
|
+
});
|
|
1162
|
+
if (data) {
|
|
1163
|
+
decorations.push(import_view2.Decoration.replace({
|
|
1164
|
+
widget: new ReferenceWidget(data)
|
|
1165
|
+
}).range(match.index, match.index + reference.length));
|
|
1166
|
+
}
|
|
1167
|
+
}
|
|
1168
|
+
return import_view2.Decoration.set(decorations);
|
|
1169
|
+
}
|
|
1170
|
+
}, {
|
|
1171
|
+
decorations: (v) => v.decorations,
|
|
1172
|
+
provide: (plugin) => [
|
|
1173
|
+
import_view2.EditorView.atomicRanges.of((view) => view.plugin(decorationField)?.decorations ?? import_state3.RangeSet.empty)
|
|
1174
|
+
]
|
|
1175
|
+
});
|
|
1176
|
+
return [
|
|
1177
|
+
decorationField,
|
|
1178
|
+
import_view2.EditorView.theme({
|
|
1179
|
+
".cm-reference-pill": {
|
|
1180
|
+
borderRadius: "0.25rem",
|
|
1181
|
+
borderWidth: "1px",
|
|
1182
|
+
marginRight: "0.25rem",
|
|
1183
|
+
marginLeft: "0.25rem"
|
|
1184
|
+
}
|
|
1185
|
+
}),
|
|
1186
|
+
(0, import_autocomplete.autocompletion)({
|
|
1187
|
+
activateOnTyping: true,
|
|
1188
|
+
override: [
|
|
1189
|
+
async (context) => {
|
|
1190
|
+
const match = context.matchBefore(new RegExp(`${triggerCharacter}[a-zA-Z0-9]+`));
|
|
1191
|
+
if (!match || match?.to === match?.from) {
|
|
1192
|
+
return null;
|
|
1193
|
+
}
|
|
1194
|
+
const query = match.text.slice(1);
|
|
1195
|
+
const references = await provider.getReferences({
|
|
1196
|
+
query
|
|
1197
|
+
});
|
|
1198
|
+
return {
|
|
1199
|
+
from: match.from,
|
|
1200
|
+
filter: false,
|
|
1201
|
+
options: references.map((reference) => ({
|
|
1202
|
+
label: reference.label,
|
|
1203
|
+
apply: `${triggerCharacter}${reference.uri} `
|
|
1204
|
+
}))
|
|
1205
|
+
};
|
|
1206
|
+
}
|
|
1207
|
+
],
|
|
1208
|
+
closeOnBlur: !debug,
|
|
1209
|
+
tooltipClass: () => "shadow rounded",
|
|
1210
|
+
aboveCursor: true
|
|
1211
|
+
}),
|
|
1212
|
+
import_view2.keymap.of(import_autocomplete.completionKeymap)
|
|
1213
|
+
];
|
|
1214
|
+
};
|
|
1215
|
+
var ReferenceWidget = class extends import_view2.WidgetType {
|
|
1216
|
+
constructor(data) {
|
|
1217
|
+
super();
|
|
1218
|
+
this.data = data;
|
|
1219
|
+
}
|
|
1220
|
+
toDOM() {
|
|
1221
|
+
const span = document.createElement("span");
|
|
1222
|
+
span.textContent = `@ ${this.data.label}`;
|
|
1223
|
+
span.className = "cm-reference-pill";
|
|
1224
|
+
return span;
|
|
1225
|
+
}
|
|
1226
|
+
eq(other) {
|
|
1227
|
+
return other.data.uri === this.data.uri;
|
|
1228
|
+
}
|
|
1229
|
+
ignoreEvent() {
|
|
1230
|
+
return true;
|
|
1231
|
+
}
|
|
1232
|
+
};
|
|
1233
|
+
var Prompt = /* @__PURE__ */ (0, import_react5.forwardRef)(({ classNames, autoFocus, lineWrapping = false, placeholder, onSubmit, onSuggest, onOpenChange, references }, forwardRef2) => {
|
|
1113
1234
|
const { themeMode } = (0, import_react_ui2.useThemeContext)();
|
|
1114
1235
|
const { parentRef, view } = (0, import_react_ui_editor.useTextEditor)({
|
|
1236
|
+
debug: true,
|
|
1115
1237
|
autoFocus,
|
|
1116
1238
|
extensions: [
|
|
1117
1239
|
(0, import_react_ui_editor.createBasicExtensions)({
|
|
@@ -1122,13 +1244,16 @@ var Prompt = /* @__PURE__ */ (0, import_react5.forwardRef)(({ classNames, autoFo
|
|
|
1122
1244
|
(0, import_react_ui_editor.createThemeExtensions)({
|
|
1123
1245
|
themeMode
|
|
1124
1246
|
}),
|
|
1247
|
+
references ? promptReferences({
|
|
1248
|
+
provider: references
|
|
1249
|
+
}) : [],
|
|
1125
1250
|
createAutocompleteExtension({
|
|
1126
1251
|
onSubmit,
|
|
1127
1252
|
onSuggest
|
|
1128
1253
|
}),
|
|
1129
|
-
import_react_ui_editor.keymap.of([
|
|
1254
|
+
import_state.Prec.highest(import_react_ui_editor.keymap.of([
|
|
1130
1255
|
{
|
|
1131
|
-
key: "
|
|
1256
|
+
key: "cmd-ArrowUp",
|
|
1132
1257
|
preventDefault: true,
|
|
1133
1258
|
run: (view2) => {
|
|
1134
1259
|
onOpenChange?.(true);
|
|
@@ -1136,14 +1261,14 @@ var Prompt = /* @__PURE__ */ (0, import_react5.forwardRef)(({ classNames, autoFo
|
|
|
1136
1261
|
}
|
|
1137
1262
|
},
|
|
1138
1263
|
{
|
|
1139
|
-
key: "
|
|
1264
|
+
key: "cmd-ArrowDown",
|
|
1140
1265
|
preventDefault: true,
|
|
1141
1266
|
run: (view2) => {
|
|
1142
1267
|
onOpenChange?.(false);
|
|
1143
1268
|
return true;
|
|
1144
1269
|
}
|
|
1145
1270
|
}
|
|
1146
|
-
])
|
|
1271
|
+
]))
|
|
1147
1272
|
]
|
|
1148
1273
|
}, [
|
|
1149
1274
|
themeMode,
|
|
@@ -1175,11 +1300,11 @@ var Prompt = /* @__PURE__ */ (0, import_react5.forwardRef)(({ classNames, autoFo
|
|
|
1175
1300
|
]);
|
|
1176
1301
|
return /* @__PURE__ */ import_react5.default.createElement("div", {
|
|
1177
1302
|
ref: parentRef,
|
|
1178
|
-
className: (0, import_react_ui_theme4.mx)("w-full
|
|
1303
|
+
className: (0, import_react_ui_theme4.mx)("w-full", classNames)
|
|
1179
1304
|
});
|
|
1180
1305
|
});
|
|
1181
|
-
var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCancel, ...props }) => {
|
|
1182
|
-
const { t } = (0, import_react_ui3.useTranslation)(
|
|
1306
|
+
var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCancel, references, ...props }) => {
|
|
1307
|
+
const { t } = (0, import_react_ui3.useTranslation)(import_chunk_U6J2GO7I.ASSISTANT_PLUGIN);
|
|
1183
1308
|
const promptRef = (0, import_react6.useRef)(null);
|
|
1184
1309
|
const [active, setActive] = (0, import_react6.useState)(false);
|
|
1185
1310
|
const { recording } = (0, import_plugin_transcription.useVoiceInput)({
|
|
@@ -1190,14 +1315,18 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
|
|
|
1190
1315
|
}
|
|
1191
1316
|
});
|
|
1192
1317
|
return /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
1193
|
-
className: (0, import_react_ui_theme5.mx)("
|
|
1318
|
+
className: (0, import_react_ui_theme5.mx)("shrink-0 w-full grid grid-cols-[var(--rail-action)_1fr_var(--rail-action)] overflow-hidden", classNames)
|
|
1194
1319
|
}, /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
1195
1320
|
className: "flex w-[--rail-action] h-[--rail-action] items-center justify-center"
|
|
1196
|
-
}, error && /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.
|
|
1321
|
+
}, error && /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Root, {
|
|
1322
|
+
delayDuration: 0
|
|
1323
|
+
}, /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Trigger, null, /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Icon, {
|
|
1197
1324
|
icon: "ph--warning-circle--regular",
|
|
1198
1325
|
classNames: import_react_ui_theme5.errorText,
|
|
1199
1326
|
size: 5
|
|
1200
|
-
})
|
|
1327
|
+
})), /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Portal, null, /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Content, null, /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
1328
|
+
className: "text-sm text-error-500"
|
|
1329
|
+
}, error.message), /* @__PURE__ */ import_react6.default.createElement(import_react_ui3.Tooltip.Arrow, null)))) || /* @__PURE__ */ import_react6.default.createElement(import_react_ui_sfx.Spinner, {
|
|
1201
1330
|
active: processing
|
|
1202
1331
|
})), /* @__PURE__ */ import_react6.default.createElement(Prompt, {
|
|
1203
1332
|
ref: promptRef,
|
|
@@ -1205,6 +1334,7 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
|
|
|
1205
1334
|
classNames: "pbs-2",
|
|
1206
1335
|
lineWrapping: true,
|
|
1207
1336
|
placeholder: placeholder ?? t("prompt placeholder"),
|
|
1337
|
+
references,
|
|
1208
1338
|
...props
|
|
1209
1339
|
}), (onCancel || microphone) && /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
1210
1340
|
className: "flex w-[--rail-action] h-[--rail-action] items-center justify-center"
|
|
@@ -1230,7 +1360,7 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
|
|
|
1230
1360
|
onTouchEnd: () => setActive(false)
|
|
1231
1361
|
})));
|
|
1232
1362
|
};
|
|
1233
|
-
var Thread = ({ classNames, space, messages, collapse = true, transcription, processing, error, onSubmit, onCancel, onOpenChange, ...props }) => {
|
|
1363
|
+
var Thread = ({ classNames, space, messages, collapse = true, transcription, processing, error, onSubmit, onCancel, onOpenChange, contextProvider, ...props }) => {
|
|
1234
1364
|
const scroller = (0, import_react2.useRef)(null);
|
|
1235
1365
|
const identity = (0, import_halo.useIdentity)();
|
|
1236
1366
|
const fallbackValue = (0, import_util2.keyToFallback)(identity.identityKey);
|
|
@@ -1256,6 +1386,21 @@ var Thread = ({ classNames, space, messages, collapse = true, transcription, pro
|
|
|
1256
1386
|
messages,
|
|
1257
1387
|
collapse
|
|
1258
1388
|
]);
|
|
1389
|
+
const references = (0, import_react2.useMemo)(() => {
|
|
1390
|
+
if (!contextProvider) {
|
|
1391
|
+
return void 0;
|
|
1392
|
+
}
|
|
1393
|
+
return {
|
|
1394
|
+
getReferences: async ({ query }) => contextProvider.query({
|
|
1395
|
+
query
|
|
1396
|
+
}),
|
|
1397
|
+
resolveReference: async ({ uri }) => contextProvider.resolveMetadata({
|
|
1398
|
+
uri
|
|
1399
|
+
})
|
|
1400
|
+
};
|
|
1401
|
+
}, [
|
|
1402
|
+
contextProvider
|
|
1403
|
+
]);
|
|
1259
1404
|
return /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
1260
1405
|
role: "none",
|
|
1261
1406
|
className: (0, import_react_ui_theme2.mx)("flex flex-col grow overflow-hidden", classNames)
|
|
@@ -1280,24 +1425,24 @@ var Thread = ({ classNames, space, messages, collapse = true, transcription, pro
|
|
|
1280
1425
|
error,
|
|
1281
1426
|
onSubmit: handleSubmit,
|
|
1282
1427
|
onCancel,
|
|
1283
|
-
onOpenChange
|
|
1428
|
+
onOpenChange,
|
|
1429
|
+
references
|
|
1284
1430
|
}));
|
|
1285
1431
|
};
|
|
1286
1432
|
var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/hooks/processor.ts";
|
|
1287
1433
|
var defaultOptions = {
|
|
1288
|
-
model: import_assistant.
|
|
1434
|
+
model: import_assistant.DEFAULT_EDGE_MODEL,
|
|
1289
1435
|
systemPrompt: "you are a helpful assistant"
|
|
1290
1436
|
};
|
|
1291
1437
|
var ChatProcessor = class {
|
|
1292
|
-
constructor(
|
|
1293
|
-
this.
|
|
1438
|
+
constructor(_ai, _tools, _artifacts, _extensions, _options = defaultOptions) {
|
|
1439
|
+
this._ai = _ai;
|
|
1294
1440
|
this._tools = _tools;
|
|
1441
|
+
this._artifacts = _artifacts;
|
|
1295
1442
|
this._extensions = _extensions;
|
|
1296
1443
|
this._options = _options;
|
|
1297
|
-
this._parser = new import_assistant.MixedStreamParser();
|
|
1298
1444
|
this._pending = (0, import_signals_core.signal)([]);
|
|
1299
1445
|
this._block = (0, import_signals_core.signal)(void 0);
|
|
1300
|
-
this._history = [];
|
|
1301
1446
|
this.streaming = (0, import_signals_core.computed)(() => this._block.value !== void 0);
|
|
1302
1447
|
this.error = (0, import_signals_core.signal)(void 0);
|
|
1303
1448
|
this.messages = (0, import_signals_core.computed)(() => {
|
|
@@ -1308,7 +1453,7 @@ var ChatProcessor = class {
|
|
|
1308
1453
|
const current = messages.pop();
|
|
1309
1454
|
(0, import_invariant4.invariant)(current, void 0, {
|
|
1310
1455
|
F: __dxlog_file6,
|
|
1311
|
-
L:
|
|
1456
|
+
L: 70,
|
|
1312
1457
|
S: this,
|
|
1313
1458
|
A: [
|
|
1314
1459
|
"current",
|
|
@@ -1327,20 +1472,6 @@ var ChatProcessor = class {
|
|
|
1327
1472
|
}
|
|
1328
1473
|
return messages;
|
|
1329
1474
|
});
|
|
1330
|
-
this._parser.message.on((message) => {
|
|
1331
|
-
(0, import_signals_core.batch)(() => {
|
|
1332
|
-
this._pending.value = [
|
|
1333
|
-
...this._pending.value,
|
|
1334
|
-
message
|
|
1335
|
-
];
|
|
1336
|
-
this._block.value = void 0;
|
|
1337
|
-
});
|
|
1338
|
-
});
|
|
1339
|
-
this._parser.update.on((block) => {
|
|
1340
|
-
(0, import_signals_core.batch)(() => {
|
|
1341
|
-
this._block.value = block;
|
|
1342
|
-
});
|
|
1343
|
-
});
|
|
1344
1475
|
}
|
|
1345
1476
|
get tools() {
|
|
1346
1477
|
return this._tools;
|
|
@@ -1355,23 +1486,70 @@ var ChatProcessor = class {
|
|
|
1355
1486
|
* Make GPT request.
|
|
1356
1487
|
*/
|
|
1357
1488
|
async request(message, options = {}) {
|
|
1358
|
-
|
|
1359
|
-
|
|
1489
|
+
this._session = new import_assistant.AISession({
|
|
1490
|
+
operationModel: "immediate"
|
|
1491
|
+
});
|
|
1492
|
+
this._session.message.on((message2) => {
|
|
1493
|
+
(0, import_signals_core.batch)(() => {
|
|
1494
|
+
this._pending.value = [
|
|
1495
|
+
...this._pending.value,
|
|
1496
|
+
message2
|
|
1497
|
+
];
|
|
1498
|
+
this._block.value = void 0;
|
|
1499
|
+
});
|
|
1500
|
+
});
|
|
1501
|
+
this._session.update.on((block) => {
|
|
1502
|
+
(0, import_signals_core.batch)(() => {
|
|
1503
|
+
this._block.value = block;
|
|
1504
|
+
});
|
|
1505
|
+
});
|
|
1506
|
+
this._session.userMessage.on((message2) => {
|
|
1360
1507
|
this._pending.value = [
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
content: [
|
|
1364
|
-
{
|
|
1365
|
-
type: "text",
|
|
1366
|
-
text: message
|
|
1367
|
-
}
|
|
1368
|
-
]
|
|
1369
|
-
})
|
|
1508
|
+
...this._pending.value,
|
|
1509
|
+
message2
|
|
1370
1510
|
];
|
|
1371
|
-
this._block.value = void 0;
|
|
1372
1511
|
});
|
|
1373
|
-
|
|
1374
|
-
|
|
1512
|
+
try {
|
|
1513
|
+
const messages = await this._session.run({
|
|
1514
|
+
client: this._ai,
|
|
1515
|
+
history: options.history ?? [],
|
|
1516
|
+
artifacts: this._artifacts ?? [],
|
|
1517
|
+
tools: this._tools ?? [],
|
|
1518
|
+
prompt: message,
|
|
1519
|
+
extensions: this._extensions,
|
|
1520
|
+
generationOptions: {
|
|
1521
|
+
model: this._options.model,
|
|
1522
|
+
systemPrompt: this._options.systemPrompt
|
|
1523
|
+
}
|
|
1524
|
+
});
|
|
1525
|
+
import_log6.log.info("completed", {
|
|
1526
|
+
messages
|
|
1527
|
+
}, {
|
|
1528
|
+
F: __dxlog_file6,
|
|
1529
|
+
L: 137,
|
|
1530
|
+
S: this,
|
|
1531
|
+
C: (f, a) => f(...a)
|
|
1532
|
+
});
|
|
1533
|
+
options.onComplete?.(this._pending.value);
|
|
1534
|
+
} catch (err) {
|
|
1535
|
+
import_log6.log.catch(err, void 0, {
|
|
1536
|
+
F: __dxlog_file6,
|
|
1537
|
+
L: 141,
|
|
1538
|
+
S: this,
|
|
1539
|
+
C: (f, a) => f(...a)
|
|
1540
|
+
});
|
|
1541
|
+
if (err instanceof Error && err.message.includes("Overloaded")) {
|
|
1542
|
+
this.error.value = new AIServiceOverloadedError("AI service overloaded", {
|
|
1543
|
+
cause: err
|
|
1544
|
+
});
|
|
1545
|
+
} else {
|
|
1546
|
+
this.error.value = new Error("AI service error", {
|
|
1547
|
+
cause: err
|
|
1548
|
+
});
|
|
1549
|
+
}
|
|
1550
|
+
} finally {
|
|
1551
|
+
this._session = void 0;
|
|
1552
|
+
}
|
|
1375
1553
|
return this._reset();
|
|
1376
1554
|
}
|
|
1377
1555
|
/**
|
|
@@ -1381,135 +1559,45 @@ var ChatProcessor = class {
|
|
|
1381
1559
|
async cancel() {
|
|
1382
1560
|
import_log6.log.info("cancelling...", void 0, {
|
|
1383
1561
|
F: __dxlog_file6,
|
|
1384
|
-
L:
|
|
1562
|
+
L: 159,
|
|
1385
1563
|
S: this,
|
|
1386
1564
|
C: (f, a) => f(...a)
|
|
1387
1565
|
});
|
|
1388
|
-
this.
|
|
1566
|
+
this._session?.abort();
|
|
1389
1567
|
return this._reset();
|
|
1390
1568
|
}
|
|
1391
1569
|
async _reset() {
|
|
1392
1570
|
const messages = this._pending.value;
|
|
1393
1571
|
(0, import_signals_core.batch)(() => {
|
|
1394
|
-
this._history = [];
|
|
1395
1572
|
this._pending.value = [];
|
|
1396
1573
|
this._block.value = void 0;
|
|
1397
1574
|
});
|
|
1398
1575
|
return messages;
|
|
1399
1576
|
}
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
try {
|
|
1406
|
-
let more = false;
|
|
1407
|
-
do {
|
|
1408
|
-
(0, import_log6.log)("request", {
|
|
1409
|
-
pending: this._pending.value.length,
|
|
1410
|
-
history: this._history.length,
|
|
1411
|
-
tools: this._tools?.map((tool) => tool.name)
|
|
1412
|
-
}, {
|
|
1413
|
-
F: __dxlog_file6,
|
|
1414
|
-
L: 176,
|
|
1415
|
-
S: this,
|
|
1416
|
-
C: (f, a) => f(...a)
|
|
1417
|
-
});
|
|
1418
|
-
this._stream = await this._service.exec({
|
|
1419
|
-
...this._options,
|
|
1420
|
-
// TODO(burdon): Rename messages or separate history/message.
|
|
1421
|
-
history: [
|
|
1422
|
-
...this._history,
|
|
1423
|
-
...this._pending.value
|
|
1424
|
-
],
|
|
1425
|
-
tools: this._tools
|
|
1426
|
-
});
|
|
1427
|
-
await this._parser.parse(this._stream);
|
|
1428
|
-
await this._stream.complete();
|
|
1429
|
-
(0, import_log6.log)("response", {
|
|
1430
|
-
pending: this._pending.value
|
|
1431
|
-
}, {
|
|
1432
|
-
F: __dxlog_file6,
|
|
1433
|
-
L: 195,
|
|
1434
|
-
S: this,
|
|
1435
|
-
C: (f, a) => f(...a)
|
|
1436
|
-
});
|
|
1437
|
-
more = false;
|
|
1438
|
-
const message = this._pending.value.at(-1);
|
|
1439
|
-
(0, import_invariant4.invariant)(message, void 0, {
|
|
1440
|
-
F: __dxlog_file6,
|
|
1441
|
-
L: 200,
|
|
1442
|
-
S: this,
|
|
1443
|
-
A: [
|
|
1444
|
-
"message",
|
|
1445
|
-
""
|
|
1446
|
-
]
|
|
1447
|
-
});
|
|
1448
|
-
if ((0, import_assistant.isToolUse)(message)) {
|
|
1449
|
-
(0, import_log6.log)("tool request...", void 0, {
|
|
1450
|
-
F: __dxlog_file6,
|
|
1451
|
-
L: 202,
|
|
1452
|
-
S: this,
|
|
1453
|
-
C: (f, a) => f(...a)
|
|
1454
|
-
});
|
|
1455
|
-
const response = await (0, import_assistant.runTools)({
|
|
1456
|
-
message: this._pending.value.at(-1),
|
|
1457
|
-
tools: this._tools ?? [],
|
|
1458
|
-
extensions: this._extensions
|
|
1459
|
-
});
|
|
1460
|
-
(0, import_log6.log)("tool response", {
|
|
1461
|
-
response
|
|
1462
|
-
}, {
|
|
1463
|
-
F: __dxlog_file6,
|
|
1464
|
-
L: 209,
|
|
1465
|
-
S: this,
|
|
1466
|
-
C: (f, a) => f(...a)
|
|
1467
|
-
});
|
|
1468
|
-
switch (response.type) {
|
|
1469
|
-
case "continue": {
|
|
1470
|
-
this._pending.value = [
|
|
1471
|
-
...this._pending.value,
|
|
1472
|
-
response.message
|
|
1473
|
-
];
|
|
1474
|
-
more = true;
|
|
1475
|
-
break;
|
|
1476
|
-
}
|
|
1477
|
-
}
|
|
1478
|
-
}
|
|
1479
|
-
} while (more);
|
|
1480
|
-
this.error.value = void 0;
|
|
1481
|
-
} catch (err) {
|
|
1482
|
-
import_log6.log.catch(err, void 0, {
|
|
1483
|
-
F: __dxlog_file6,
|
|
1484
|
-
L: 222,
|
|
1485
|
-
S: this,
|
|
1486
|
-
C: (f, a) => f(...a)
|
|
1487
|
-
});
|
|
1488
|
-
this.error.value = new Error("AI service error", {
|
|
1489
|
-
cause: err
|
|
1490
|
-
});
|
|
1491
|
-
} finally {
|
|
1492
|
-
this._stream = void 0;
|
|
1493
|
-
}
|
|
1577
|
+
};
|
|
1578
|
+
var AIServiceOverloadedError = class extends Error {
|
|
1579
|
+
constructor() {
|
|
1580
|
+
super(...arguments);
|
|
1581
|
+
this.code = "AI_SERVICE_OVERLOADED";
|
|
1494
1582
|
}
|
|
1495
1583
|
};
|
|
1496
|
-
var AiClient = (0, import_app_framework3.lazy)(() => import("./ai-client-
|
|
1497
|
-
var AppGraphBuilder = (0, import_app_framework3.lazy)(() => import("./app-graph-builder-
|
|
1498
|
-
var IntentResolver = (0, import_app_framework3.lazy)(() => import("./intent-resolver-
|
|
1499
|
-
var ReactSurface = (0, import_app_framework3.lazy)(() => import("./react-surface-
|
|
1500
|
-
var AssistantSettings = (0, import_app_framework3.lazy)(() => import("./settings-
|
|
1584
|
+
var AiClient = (0, import_app_framework3.lazy)(() => import("./ai-client-5ESLYXAV.cjs"));
|
|
1585
|
+
var AppGraphBuilder = (0, import_app_framework3.lazy)(() => import("./app-graph-builder-3P6WSON2.cjs"));
|
|
1586
|
+
var IntentResolver = (0, import_app_framework3.lazy)(() => import("./intent-resolver-YIFAMM3B.cjs"));
|
|
1587
|
+
var ReactSurface = (0, import_app_framework3.lazy)(() => import("./react-surface-IDGIN55C.cjs"));
|
|
1588
|
+
var AssistantSettings = (0, import_app_framework3.lazy)(() => import("./settings-2FEYGLYU.cjs"));
|
|
1501
1589
|
var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/hooks/useChatProcessor.tsx";
|
|
1502
|
-
var useChatProcessor = (space, settings) => {
|
|
1503
|
-
const aiClient = (0, import_app_framework2.useCapability)(
|
|
1590
|
+
var useChatProcessor = ({ chat, space, settings, part = "deck" }) => {
|
|
1591
|
+
const aiClient = (0, import_app_framework2.useCapability)(import_chunk_VRXFIS4X.AssistantCapabilities.AiClient);
|
|
1504
1592
|
const globalTools = (0, import_app_framework2.useCapabilities)(import_app_framework2.Capabilities.Tools);
|
|
1505
1593
|
const artifactDefinitions = (0, import_app_framework2.useCapabilities)(import_app_framework2.Capabilities.ArtifactDefinition);
|
|
1506
1594
|
const { dispatchPromise: dispatch } = (0, import_app_framework2.useIntentDispatcher)();
|
|
1507
|
-
const services = (0, import_echo4.useQuery)(space, import_echo4.Filter.schema(
|
|
1595
|
+
const services = (0, import_echo4.useQuery)(space, import_echo4.Filter.schema(import_chunk_KLSNCP34.ServiceType));
|
|
1508
1596
|
const [serviceTools, setServiceTools] = (0, import_react8.useState)([]);
|
|
1509
1597
|
(0, import_react8.useEffect)(() => {
|
|
1510
1598
|
(0, import_log7.log)("creating service tools...", void 0, {
|
|
1511
1599
|
F: __dxlog_file7,
|
|
1512
|
-
L:
|
|
1600
|
+
L: 41,
|
|
1513
1601
|
S: void 0,
|
|
1514
1602
|
C: (f, a) => f(...a)
|
|
1515
1603
|
});
|
|
@@ -1521,23 +1609,27 @@ var useChatProcessor = (space, settings) => {
|
|
|
1521
1609
|
services
|
|
1522
1610
|
]);
|
|
1523
1611
|
const config = (0, import_react_client.useConfig)();
|
|
1524
|
-
const functions = (0, import_echo4.useQuery)(space, import_echo4.Filter.schema(
|
|
1612
|
+
const functions = (0, import_echo4.useQuery)(space, import_echo4.Filter.schema(import_types3.FunctionType));
|
|
1613
|
+
const chatId = (0, import_react8.useMemo)(() => chat ? (0, import_echo4.fullyQualifiedId)(chat) : void 0, [
|
|
1614
|
+
chat
|
|
1615
|
+
]);
|
|
1525
1616
|
const [tools, extensions] = (0, import_react8.useMemo)(() => {
|
|
1526
1617
|
(0, import_log7.log)("creating tools...", void 0, {
|
|
1527
1618
|
F: __dxlog_file7,
|
|
1528
|
-
L:
|
|
1619
|
+
L: 53,
|
|
1529
1620
|
S: void 0,
|
|
1530
1621
|
C: (f, a) => f(...a)
|
|
1531
1622
|
});
|
|
1532
1623
|
const tools2 = [
|
|
1533
1624
|
...globalTools.flat(),
|
|
1534
|
-
...artifactDefinitions.flatMap((definition) => definition.tools),
|
|
1535
1625
|
...serviceTools,
|
|
1536
1626
|
...functions.map((fn) => covertFunctionToTool(fn, config.values.runtime?.services?.edge?.url ?? "", space?.id)).filter(import_util5.isNonNullable)
|
|
1537
1627
|
];
|
|
1538
1628
|
const extensions2 = {
|
|
1539
1629
|
space,
|
|
1540
|
-
dispatch
|
|
1630
|
+
dispatch,
|
|
1631
|
+
pivotId: chatId,
|
|
1632
|
+
part
|
|
1541
1633
|
};
|
|
1542
1634
|
return [
|
|
1543
1635
|
tools2,
|
|
@@ -1546,41 +1638,40 @@ var useChatProcessor = (space, settings) => {
|
|
|
1546
1638
|
}, [
|
|
1547
1639
|
dispatch,
|
|
1548
1640
|
globalTools,
|
|
1549
|
-
artifactDefinitions,
|
|
1550
1641
|
space,
|
|
1642
|
+
chatId,
|
|
1551
1643
|
serviceTools,
|
|
1552
1644
|
functions
|
|
1553
1645
|
]);
|
|
1554
|
-
const systemPrompt = (0, import_react8.useMemo)(() => (0,
|
|
1646
|
+
const systemPrompt = (0, import_react8.useMemo)(() => (0, import_artifact4.createSystemPrompt)({
|
|
1555
1647
|
artifacts: artifactDefinitions.map((definition) => definition.instructions)
|
|
1556
1648
|
}), [
|
|
1557
1649
|
artifactDefinitions
|
|
1558
1650
|
]);
|
|
1651
|
+
const model = settings?.llmProvider === "ollama" ? settings?.ollamaModel ?? import_assistant2.DEFAULT_OLLAMA_MODEL : settings?.edgeModel ?? import_assistant2.DEFAULT_EDGE_MODEL;
|
|
1559
1652
|
const processor = (0, import_react8.useMemo)(() => {
|
|
1560
1653
|
(0, import_log7.log)("creating processor...", {
|
|
1561
1654
|
settings
|
|
1562
1655
|
}, {
|
|
1563
1656
|
F: __dxlog_file7,
|
|
1564
|
-
L:
|
|
1657
|
+
L: 83,
|
|
1565
1658
|
S: void 0,
|
|
1566
1659
|
C: (f, a) => f(...a)
|
|
1567
1660
|
});
|
|
1568
|
-
return new ChatProcessor(aiClient, tools, extensions, {
|
|
1569
|
-
|
|
1570
|
-
model: settings?.llmModel ?? import_assistant2.DEFAULT_LLM_MODEL,
|
|
1571
|
-
// TOOD(burdon): Query.
|
|
1661
|
+
return new ChatProcessor(aiClient.value, tools, artifactDefinitions, extensions, {
|
|
1662
|
+
model,
|
|
1572
1663
|
systemPrompt
|
|
1573
1664
|
});
|
|
1574
1665
|
}, [
|
|
1575
|
-
aiClient,
|
|
1666
|
+
aiClient.value,
|
|
1576
1667
|
tools,
|
|
1577
1668
|
extensions,
|
|
1578
|
-
|
|
1579
|
-
|
|
1669
|
+
model,
|
|
1670
|
+
systemPrompt
|
|
1580
1671
|
]);
|
|
1581
1672
|
return processor;
|
|
1582
1673
|
};
|
|
1583
|
-
var registerTriggersMutex = new
|
|
1674
|
+
var registerTriggersMutex = new import_async2.Mutex();
|
|
1584
1675
|
var useMessageQueue = (chat) => {
|
|
1585
1676
|
const space = (0, import_echo6.getSpace)(chat);
|
|
1586
1677
|
const queueDxn = (0, import_react10.useMemo)(() => {
|
|
@@ -1594,8 +1685,7 @@ var useMessageQueue = (chat) => {
|
|
|
1594
1685
|
space,
|
|
1595
1686
|
chat?.queue.dxn
|
|
1596
1687
|
]);
|
|
1597
|
-
|
|
1598
|
-
return (0, import_react_edge_client.useQueue)(edgeClient, queueDxn);
|
|
1688
|
+
return (0, import_echo6.useQueue)(queueDxn);
|
|
1599
1689
|
};
|
|
1600
1690
|
var MockServiceRegistry = class {
|
|
1601
1691
|
async queryServices(query) {
|
|
@@ -1618,7 +1708,7 @@ var VISUAL_CROSSING_CREDENTIALS = {
|
|
|
1618
1708
|
}
|
|
1619
1709
|
};
|
|
1620
1710
|
var TEST_SERVICES = [
|
|
1621
|
-
(0,
|
|
1711
|
+
(0, import_echo_schema3.createStatic)(import_chunk_KLSNCP34.ServiceType, {
|
|
1622
1712
|
serviceId: "amadeus.com/service/FlightSearch",
|
|
1623
1713
|
name: "Amadeus Flight Search",
|
|
1624
1714
|
description: "Search for local and international flights.",
|
|
@@ -1631,7 +1721,7 @@ var TEST_SERVICES = [
|
|
|
1631
1721
|
}
|
|
1632
1722
|
]
|
|
1633
1723
|
}),
|
|
1634
|
-
(0,
|
|
1724
|
+
(0, import_echo_schema3.createStatic)(import_chunk_KLSNCP34.ServiceType, {
|
|
1635
1725
|
serviceId: "amadeus.com/service/HotelSearch",
|
|
1636
1726
|
name: "Amadeus Hotel Search",
|
|
1637
1727
|
description: "Search for local and international hotels.",
|
|
@@ -1644,7 +1734,7 @@ var TEST_SERVICES = [
|
|
|
1644
1734
|
}
|
|
1645
1735
|
]
|
|
1646
1736
|
}),
|
|
1647
|
-
(0,
|
|
1737
|
+
(0, import_echo_schema3.createStatic)(import_chunk_KLSNCP34.ServiceType, {
|
|
1648
1738
|
serviceId: "visualcrossing.com/service/Weather",
|
|
1649
1739
|
name: "Visual Crossing Weather",
|
|
1650
1740
|
description: "Search for global weather forecasts.",
|
|
@@ -1658,7 +1748,7 @@ var TEST_SERVICES = [
|
|
|
1658
1748
|
]
|
|
1659
1749
|
}),
|
|
1660
1750
|
// TODO(burdon): Needs auth.
|
|
1661
|
-
(0,
|
|
1751
|
+
(0, import_echo_schema3.createStatic)(import_chunk_KLSNCP34.ServiceType, {
|
|
1662
1752
|
serviceId: "abstractapi.com/service/GeoLocation",
|
|
1663
1753
|
name: "Abstract GeoLocation",
|
|
1664
1754
|
description: "Get the location of any IP address.",
|
|
@@ -1675,11 +1765,11 @@ var TEST_SERVICES = [
|
|
|
1675
1765
|
//
|
|
1676
1766
|
...Array.from({
|
|
1677
1767
|
length: 20
|
|
1678
|
-
}, (_, i) => (0,
|
|
1768
|
+
}, (_, i) => (0, import_echo_schema3.createStatic)(import_chunk_KLSNCP34.ServiceType, {
|
|
1679
1769
|
serviceId: `example.com/service/test-${i}`,
|
|
1680
1770
|
name: `Test ${i}`,
|
|
1681
1771
|
description: `Test ${i}`,
|
|
1682
|
-
category: Object.keys(
|
|
1772
|
+
category: Object.keys(import_chunk_KLSNCP34.categoryIcons)[Math.floor(Math.random() * Object.keys(import_chunk_KLSNCP34.categoryIcons).length)],
|
|
1683
1773
|
interfaces: [
|
|
1684
1774
|
{
|
|
1685
1775
|
kind: "api",
|
|
@@ -1703,10 +1793,59 @@ var useServices = (space, query) => {
|
|
|
1703
1793
|
]);
|
|
1704
1794
|
return services;
|
|
1705
1795
|
};
|
|
1706
|
-
var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/
|
|
1707
|
-
var
|
|
1796
|
+
var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/hooks/useContextProvider.ts";
|
|
1797
|
+
var stringMatch = (query, label) => label.toLowerCase().startsWith(query.toLowerCase());
|
|
1798
|
+
var useContextProvider = (space) => {
|
|
1799
|
+
const artifactDefinitions = (0, import_app_framework4.useCapabilities)(import_app_framework4.Capabilities.ArtifactDefinition);
|
|
1800
|
+
return (0, import_react13.useMemo)(() => {
|
|
1801
|
+
if (!space) {
|
|
1802
|
+
return void 0;
|
|
1803
|
+
}
|
|
1804
|
+
return {
|
|
1805
|
+
query: async ({ query }) => {
|
|
1806
|
+
const artifactSchemas = artifactDefinitions.map((artifact) => artifact.schema);
|
|
1807
|
+
const { objects } = await space.db.query(import_echo7.Filter.or(...artifactSchemas.map((schema) => import_echo7.Filter.schema(schema)))).run();
|
|
1808
|
+
return objects.map((object) => {
|
|
1809
|
+
import_log10.log.info("object", {
|
|
1810
|
+
object,
|
|
1811
|
+
label: (0, import_echo_schema4.getLabel)((0, import_echo_schema4.getSchema)(object), object)
|
|
1812
|
+
}, {
|
|
1813
|
+
F: __dxlog_file8,
|
|
1814
|
+
L: 36,
|
|
1815
|
+
S: void 0,
|
|
1816
|
+
C: (f, a) => f(...a)
|
|
1817
|
+
});
|
|
1818
|
+
return object;
|
|
1819
|
+
}).filter((object) => stringMatch(query, (0, import_echo_schema4.getLabel)((0, import_echo_schema4.getSchema)(object), object) ?? "")).filter((object) => !!(0, import_echo_schema4.getDXN)(object)).map((object) => ({
|
|
1820
|
+
uri: (0, import_echo_schema4.getDXN)(object).toString(),
|
|
1821
|
+
label: (0, import_echo_schema4.getLabel)((0, import_echo_schema4.getSchema)(object), object) ?? ""
|
|
1822
|
+
}));
|
|
1823
|
+
},
|
|
1824
|
+
resolveMetadata: async ({ uri }) => {
|
|
1825
|
+
const object = await space.db.query({
|
|
1826
|
+
id: uri
|
|
1827
|
+
}).first();
|
|
1828
|
+
return {
|
|
1829
|
+
uri,
|
|
1830
|
+
label: (0, import_echo_schema4.getLabel)((0, import_echo_schema4.getSchema)(object), object) ?? ""
|
|
1831
|
+
};
|
|
1832
|
+
}
|
|
1833
|
+
};
|
|
1834
|
+
}, [
|
|
1835
|
+
space,
|
|
1836
|
+
artifactDefinitions
|
|
1837
|
+
]);
|
|
1838
|
+
};
|
|
1839
|
+
var __dxlog_file9 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadContainer.tsx";
|
|
1840
|
+
var ThreadContainer = ({ classNames, chat, settings, part, onOpenChange, ...props }) => {
|
|
1708
1841
|
const space = (0, import_echo3.getSpace)(chat);
|
|
1709
|
-
const
|
|
1842
|
+
const contextProvider = useContextProvider(space);
|
|
1843
|
+
const processor = useChatProcessor({
|
|
1844
|
+
chat,
|
|
1845
|
+
space,
|
|
1846
|
+
settings,
|
|
1847
|
+
part
|
|
1848
|
+
});
|
|
1710
1849
|
const messageQueue = useMessageQueue(chat);
|
|
1711
1850
|
const messages = [
|
|
1712
1851
|
...messageQueue?.items ?? [],
|
|
@@ -1715,8 +1854,8 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
|
|
|
1715
1854
|
const handleSubmit = (0, import_react7.useCallback)((text) => {
|
|
1716
1855
|
if (processor.streaming.value) {
|
|
1717
1856
|
import_log5.log.warn("ignoring submit; still processing.", void 0, {
|
|
1718
|
-
F:
|
|
1719
|
-
L:
|
|
1857
|
+
F: __dxlog_file9,
|
|
1858
|
+
L: 41,
|
|
1720
1859
|
S: void 0,
|
|
1721
1860
|
C: (f, a) => f(...a)
|
|
1722
1861
|
});
|
|
@@ -1724,8 +1863,8 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
|
|
|
1724
1863
|
}
|
|
1725
1864
|
onOpenChange?.(true);
|
|
1726
1865
|
(0, import_invariant3.invariant)(messageQueue, void 0, {
|
|
1727
|
-
F:
|
|
1728
|
-
L:
|
|
1866
|
+
F: __dxlog_file9,
|
|
1867
|
+
L: 47,
|
|
1729
1868
|
S: void 0,
|
|
1730
1869
|
A: [
|
|
1731
1870
|
"messageQueue",
|
|
@@ -1762,6 +1901,7 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
|
|
|
1762
1901
|
onCancel: handleCancel,
|
|
1763
1902
|
onPrompt: handleSubmit,
|
|
1764
1903
|
onOpenChange,
|
|
1904
|
+
contextProvider,
|
|
1765
1905
|
...props
|
|
1766
1906
|
});
|
|
1767
1907
|
};
|
|
@@ -1778,4 +1918,4 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
|
|
|
1778
1918
|
ToolboxContainer,
|
|
1779
1919
|
useServices
|
|
1780
1920
|
});
|
|
1781
|
-
//# sourceMappingURL=chunk-
|
|
1921
|
+
//# sourceMappingURL=chunk-JAB6KLPP.cjs.map
|