@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
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AssistantCapabilities
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-SVUCJXGN.mjs";
|
|
4
4
|
import {
|
|
5
5
|
ServiceType,
|
|
6
6
|
categoryIcons
|
|
7
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-X6ALDUA5.mjs";
|
|
8
8
|
import {
|
|
9
9
|
ASSISTANT_PLUGIN
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-AF7VQAKS.mjs";
|
|
11
11
|
|
|
12
12
|
// packages/plugins/experimental/plugin-assistant/src/components/Toolbox/Toolbox.tsx
|
|
13
13
|
import React, { useState, useEffect, Fragment } from "react";
|
|
14
14
|
import { Capabilities, useCapabilities } from "@dxos/app-framework";
|
|
15
15
|
import { parseToolName } from "@dxos/artifact";
|
|
16
|
-
import { FunctionType } from "@dxos/functions";
|
|
16
|
+
import { FunctionType } from "@dxos/functions/types";
|
|
17
17
|
import { log as log3 } from "@dxos/log";
|
|
18
18
|
import { Filter, useQuery } from "@dxos/react-client/echo";
|
|
19
19
|
import { mx } from "@dxos/react-ui-theme";
|
|
@@ -21,7 +21,7 @@ import { mx } from "@dxos/react-ui-theme";
|
|
|
21
21
|
// packages/plugins/experimental/plugin-assistant/src/tools/function.ts
|
|
22
22
|
import { defineTool, ToolResult } from "@dxos/artifact";
|
|
23
23
|
import { toEffectSchema } from "@dxos/echo-schema";
|
|
24
|
-
import { getInvocationUrl, getUserFunctionUrlInMetadata } from "@dxos/functions";
|
|
24
|
+
import { getInvocationUrl, getUserFunctionUrlInMetadata } from "@dxos/functions/types";
|
|
25
25
|
import { log } from "@dxos/log";
|
|
26
26
|
import { getMeta } from "@dxos/react-client/echo";
|
|
27
27
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/tools/function.ts";
|
|
@@ -550,7 +550,7 @@ import { keyToFallback } from "@dxos/util";
|
|
|
550
550
|
// packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadMessage.tsx
|
|
551
551
|
import React3 from "react";
|
|
552
552
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
553
|
-
import { Button,
|
|
553
|
+
import { Button, Icon, IconButton } from "@dxos/react-ui";
|
|
554
554
|
import { MarkdownViewer, ToggleContainer as NativeToggleContainer } from "@dxos/react-ui-components";
|
|
555
555
|
import { Json as Json2 } from "@dxos/react-ui-syntax-highlighter";
|
|
556
556
|
import { mx as mx2 } from "@dxos/react-ui-theme";
|
|
@@ -681,7 +681,7 @@ var ToolContainer = ({ classNames, items }) => {
|
|
|
681
681
|
// packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadMessage.tsx
|
|
682
682
|
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadMessage.tsx";
|
|
683
683
|
var panelClassNames = "flex flex-col w-full px-2 bg-groupSurface rounded-md";
|
|
684
|
-
var userClassNames = "bg-[--user-fill]";
|
|
684
|
+
var userClassNames = "bg-[--user-fill] text-inverse";
|
|
685
685
|
var ToggleContainer2 = (props) => {
|
|
686
686
|
return /* @__PURE__ */ React3.createElement(NativeToggleContainer, {
|
|
687
687
|
...props,
|
|
@@ -706,7 +706,7 @@ var ThreadMessage = ({ classNames, space, message, tools, onPrompt }) => {
|
|
|
706
706
|
const { role, content = [] } = message;
|
|
707
707
|
if (isToolMessage(message)) {
|
|
708
708
|
return /* @__PURE__ */ React3.createElement(MessageContainer, {
|
|
709
|
-
classNames
|
|
709
|
+
classNames: mx2(classNames, "animate-[fadeIn_0.5s]")
|
|
710
710
|
}, /* @__PURE__ */ React3.createElement(ToolBlock, {
|
|
711
711
|
space,
|
|
712
712
|
classNames: panelClassNames,
|
|
@@ -721,7 +721,7 @@ var ThreadMessage = ({ classNames, space, message, tools, onPrompt }) => {
|
|
|
721
721
|
const Component = components[block.type] ?? components.default;
|
|
722
722
|
return /* @__PURE__ */ React3.createElement(MessageContainer, {
|
|
723
723
|
key: idx,
|
|
724
|
-
classNames,
|
|
724
|
+
classNames: mx2(classNames, "animate-[fadeIn_0.5s]"),
|
|
725
725
|
user: block.type === "text" && role === "user"
|
|
726
726
|
}, /* @__PURE__ */ React3.createElement(Component, {
|
|
727
727
|
space,
|
|
@@ -737,7 +737,7 @@ var components = {
|
|
|
737
737
|
["text"]: ({ block }) => {
|
|
738
738
|
invariant2(block.type === "text", void 0, {
|
|
739
739
|
F: __dxlog_file5,
|
|
740
|
-
L:
|
|
740
|
+
L: 90,
|
|
741
741
|
S: void 0,
|
|
742
742
|
A: [
|
|
743
743
|
"block.type === 'text'",
|
|
@@ -747,6 +747,7 @@ var components = {
|
|
|
747
747
|
const title = block.disposition ? titles[block.disposition] : void 0;
|
|
748
748
|
if (!title) {
|
|
749
749
|
return /* @__PURE__ */ React3.createElement(MarkdownViewer, {
|
|
750
|
+
classNames: "[&>p]:animate-[fadeIn_0.5s]",
|
|
750
751
|
content: block.text
|
|
751
752
|
});
|
|
752
753
|
}
|
|
@@ -773,7 +774,7 @@ var components = {
|
|
|
773
774
|
["json"]: ({ space, block, onPrompt }) => {
|
|
774
775
|
invariant2(block.type === "json", void 0, {
|
|
775
776
|
F: __dxlog_file5,
|
|
776
|
-
L:
|
|
777
|
+
L: 128,
|
|
777
778
|
S: void 0,
|
|
778
779
|
A: [
|
|
779
780
|
"block.type === 'json'",
|
|
@@ -800,7 +801,10 @@ var components = {
|
|
|
800
801
|
}
|
|
801
802
|
case "select": {
|
|
802
803
|
const { options = [] } = safeParseJson(block.json ?? "{}") ?? {};
|
|
803
|
-
return /* @__PURE__ */ React3.createElement(
|
|
804
|
+
return /* @__PURE__ */ React3.createElement("div", {
|
|
805
|
+
className: "flex flex-wrap gap-1"
|
|
806
|
+
}, options.map((option, idx) => /* @__PURE__ */ React3.createElement(Button, {
|
|
807
|
+
classNames: "animate-[fadeIn_0.5s] rounded-2xl text-sm",
|
|
804
808
|
key: option,
|
|
805
809
|
onClick: () => onPrompt?.(option)
|
|
806
810
|
}, option)));
|
|
@@ -891,7 +895,7 @@ var messageReducer = ({ current, messages }, message) => {
|
|
|
891
895
|
// packages/plugins/experimental/plugin-assistant/src/components/Prompt/Prompt.tsx
|
|
892
896
|
import React4, { forwardRef, useImperativeHandle } from "react";
|
|
893
897
|
import { useThemeContext } from "@dxos/react-ui";
|
|
894
|
-
import { createBasicExtensions, createThemeExtensions, keymap as
|
|
898
|
+
import { createBasicExtensions, createThemeExtensions, keymap as keymap3, useTextEditor } from "@dxos/react-ui-editor";
|
|
895
899
|
import { mx as mx3 } from "@dxos/react-ui-theme";
|
|
896
900
|
|
|
897
901
|
// packages/plugins/experimental/plugin-assistant/src/components/Prompt/autocomplete.ts
|
|
@@ -1048,10 +1052,127 @@ var InlineSuggestionWidget = class extends WidgetType {
|
|
|
1048
1052
|
}
|
|
1049
1053
|
};
|
|
1050
1054
|
|
|
1055
|
+
// packages/plugins/experimental/plugin-assistant/src/components/Prompt/references.ts
|
|
1056
|
+
import { autocompletion, completionKeymap } from "@codemirror/autocomplete";
|
|
1057
|
+
import { RangeSet } from "@codemirror/state";
|
|
1058
|
+
import { Decoration as Decoration2, EditorView as EditorView2, keymap as keymap2, ViewPlugin as ViewPlugin2, WidgetType as WidgetType2 } from "@codemirror/view";
|
|
1059
|
+
import { Mutex } from "@dxos/async";
|
|
1060
|
+
var promptReferences = ({ provider, debug = false, triggerCharacter = "@" }) => {
|
|
1061
|
+
if (triggerCharacter.length !== 1) {
|
|
1062
|
+
throw new Error("triggerCharacter must be a single character");
|
|
1063
|
+
}
|
|
1064
|
+
const decorationField = ViewPlugin2.fromClass(class ReferenceView {
|
|
1065
|
+
constructor(view) {
|
|
1066
|
+
this._mutex = new Mutex();
|
|
1067
|
+
this.decorations = Decoration2.set([]);
|
|
1068
|
+
queueMicrotask(async () => {
|
|
1069
|
+
const guard = await this._mutex.acquire();
|
|
1070
|
+
try {
|
|
1071
|
+
this.decorations = await this._computeDecorations(view);
|
|
1072
|
+
} finally {
|
|
1073
|
+
guard.release();
|
|
1074
|
+
}
|
|
1075
|
+
});
|
|
1076
|
+
}
|
|
1077
|
+
update(update) {
|
|
1078
|
+
if (update.docChanged) {
|
|
1079
|
+
queueMicrotask(async () => {
|
|
1080
|
+
const guard = await this._mutex.acquire();
|
|
1081
|
+
try {
|
|
1082
|
+
this.decorations = await this._computeDecorations(update.view);
|
|
1083
|
+
} finally {
|
|
1084
|
+
guard.release();
|
|
1085
|
+
}
|
|
1086
|
+
});
|
|
1087
|
+
}
|
|
1088
|
+
}
|
|
1089
|
+
async _computeDecorations(view) {
|
|
1090
|
+
const text = view.state.doc.toString();
|
|
1091
|
+
const references = text.matchAll(new RegExp(`${triggerCharacter}[a-zA-Z0-9@:]+\\s`, "g"));
|
|
1092
|
+
const decorations = [];
|
|
1093
|
+
for (const match of references) {
|
|
1094
|
+
const reference = match[0];
|
|
1095
|
+
const uri = reference.slice(1, -1);
|
|
1096
|
+
const data = await provider.resolveReference({
|
|
1097
|
+
uri
|
|
1098
|
+
});
|
|
1099
|
+
if (data) {
|
|
1100
|
+
decorations.push(Decoration2.replace({
|
|
1101
|
+
widget: new ReferenceWidget(data)
|
|
1102
|
+
}).range(match.index, match.index + reference.length));
|
|
1103
|
+
}
|
|
1104
|
+
}
|
|
1105
|
+
return Decoration2.set(decorations);
|
|
1106
|
+
}
|
|
1107
|
+
}, {
|
|
1108
|
+
decorations: (v) => v.decorations,
|
|
1109
|
+
provide: (plugin) => [
|
|
1110
|
+
EditorView2.atomicRanges.of((view) => view.plugin(decorationField)?.decorations ?? RangeSet.empty)
|
|
1111
|
+
]
|
|
1112
|
+
});
|
|
1113
|
+
return [
|
|
1114
|
+
decorationField,
|
|
1115
|
+
EditorView2.theme({
|
|
1116
|
+
".cm-reference-pill": {
|
|
1117
|
+
borderRadius: "0.25rem",
|
|
1118
|
+
borderWidth: "1px",
|
|
1119
|
+
marginRight: "0.25rem",
|
|
1120
|
+
marginLeft: "0.25rem"
|
|
1121
|
+
}
|
|
1122
|
+
}),
|
|
1123
|
+
autocompletion({
|
|
1124
|
+
activateOnTyping: true,
|
|
1125
|
+
override: [
|
|
1126
|
+
async (context) => {
|
|
1127
|
+
const match = context.matchBefore(new RegExp(`${triggerCharacter}[a-zA-Z0-9]+`));
|
|
1128
|
+
if (!match || match?.to === match?.from) {
|
|
1129
|
+
return null;
|
|
1130
|
+
}
|
|
1131
|
+
const query = match.text.slice(1);
|
|
1132
|
+
const references = await provider.getReferences({
|
|
1133
|
+
query
|
|
1134
|
+
});
|
|
1135
|
+
return {
|
|
1136
|
+
from: match.from,
|
|
1137
|
+
filter: false,
|
|
1138
|
+
options: references.map((reference) => ({
|
|
1139
|
+
label: reference.label,
|
|
1140
|
+
apply: `${triggerCharacter}${reference.uri} `
|
|
1141
|
+
}))
|
|
1142
|
+
};
|
|
1143
|
+
}
|
|
1144
|
+
],
|
|
1145
|
+
closeOnBlur: !debug,
|
|
1146
|
+
tooltipClass: () => "shadow rounded",
|
|
1147
|
+
aboveCursor: true
|
|
1148
|
+
}),
|
|
1149
|
+
keymap2.of(completionKeymap)
|
|
1150
|
+
];
|
|
1151
|
+
};
|
|
1152
|
+
var ReferenceWidget = class extends WidgetType2 {
|
|
1153
|
+
constructor(data) {
|
|
1154
|
+
super();
|
|
1155
|
+
this.data = data;
|
|
1156
|
+
}
|
|
1157
|
+
toDOM() {
|
|
1158
|
+
const span = document.createElement("span");
|
|
1159
|
+
span.textContent = `@ ${this.data.label}`;
|
|
1160
|
+
span.className = "cm-reference-pill";
|
|
1161
|
+
return span;
|
|
1162
|
+
}
|
|
1163
|
+
eq(other) {
|
|
1164
|
+
return other.data.uri === this.data.uri;
|
|
1165
|
+
}
|
|
1166
|
+
ignoreEvent() {
|
|
1167
|
+
return true;
|
|
1168
|
+
}
|
|
1169
|
+
};
|
|
1170
|
+
|
|
1051
1171
|
// packages/plugins/experimental/plugin-assistant/src/components/Prompt/Prompt.tsx
|
|
1052
|
-
var Prompt = /* @__PURE__ */ forwardRef(({ classNames, autoFocus, lineWrapping = false, placeholder, onSubmit, onSuggest, onOpenChange }, forwardRef2) => {
|
|
1172
|
+
var Prompt = /* @__PURE__ */ forwardRef(({ classNames, autoFocus, lineWrapping = false, placeholder, onSubmit, onSuggest, onOpenChange, references }, forwardRef2) => {
|
|
1053
1173
|
const { themeMode } = useThemeContext();
|
|
1054
1174
|
const { parentRef, view } = useTextEditor({
|
|
1175
|
+
debug: true,
|
|
1055
1176
|
autoFocus,
|
|
1056
1177
|
extensions: [
|
|
1057
1178
|
createBasicExtensions({
|
|
@@ -1062,11 +1183,14 @@ var Prompt = /* @__PURE__ */ forwardRef(({ classNames, autoFocus, lineWrapping =
|
|
|
1062
1183
|
createThemeExtensions({
|
|
1063
1184
|
themeMode
|
|
1064
1185
|
}),
|
|
1186
|
+
references ? promptReferences({
|
|
1187
|
+
provider: references
|
|
1188
|
+
}) : [],
|
|
1065
1189
|
createAutocompleteExtension({
|
|
1066
1190
|
onSubmit,
|
|
1067
1191
|
onSuggest
|
|
1068
1192
|
}),
|
|
1069
|
-
|
|
1193
|
+
keymap3.of([
|
|
1070
1194
|
{
|
|
1071
1195
|
key: "Alt-ArrowUp",
|
|
1072
1196
|
preventDefault: true,
|
|
@@ -1115,17 +1239,17 @@ var Prompt = /* @__PURE__ */ forwardRef(({ classNames, autoFocus, lineWrapping =
|
|
|
1115
1239
|
]);
|
|
1116
1240
|
return /* @__PURE__ */ React4.createElement("div", {
|
|
1117
1241
|
ref: parentRef,
|
|
1118
|
-
className: mx3("w-full
|
|
1242
|
+
className: mx3("w-full", classNames)
|
|
1119
1243
|
});
|
|
1120
1244
|
});
|
|
1121
1245
|
|
|
1122
1246
|
// packages/plugins/experimental/plugin-assistant/src/components/Prompt/PromptBar.tsx
|
|
1123
1247
|
import React5, { useRef as useRef2, useState as useState3 } from "react";
|
|
1124
1248
|
import { useVoiceInput } from "@dxos/plugin-transcription";
|
|
1125
|
-
import { Icon as Icon2, IconButton as IconButton2, useTranslation } from "@dxos/react-ui";
|
|
1249
|
+
import { Icon as Icon2, IconButton as IconButton2, Tooltip, useTranslation } from "@dxos/react-ui";
|
|
1126
1250
|
import { Spinner } from "@dxos/react-ui-sfx";
|
|
1127
1251
|
import { errorText, mx as mx4 } from "@dxos/react-ui-theme";
|
|
1128
|
-
var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCancel, ...props }) => {
|
|
1252
|
+
var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCancel, references, ...props }) => {
|
|
1129
1253
|
const { t } = useTranslation(ASSISTANT_PLUGIN);
|
|
1130
1254
|
const promptRef = useRef2(null);
|
|
1131
1255
|
const [active, setActive] = useState3(false);
|
|
@@ -1137,14 +1261,18 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
|
|
|
1137
1261
|
}
|
|
1138
1262
|
});
|
|
1139
1263
|
return /* @__PURE__ */ React5.createElement("div", {
|
|
1140
|
-
className: mx4("
|
|
1264
|
+
className: mx4("shrink-0 w-full grid grid-cols-[var(--rail-action)_1fr_var(--rail-action)] overflow-hidden", classNames)
|
|
1141
1265
|
}, /* @__PURE__ */ React5.createElement("div", {
|
|
1142
1266
|
className: "flex w-[--rail-action] h-[--rail-action] items-center justify-center"
|
|
1143
|
-
}, error && /* @__PURE__ */ React5.createElement(
|
|
1267
|
+
}, error && /* @__PURE__ */ React5.createElement(Tooltip.Root, {
|
|
1268
|
+
delayDuration: 0
|
|
1269
|
+
}, /* @__PURE__ */ React5.createElement(Tooltip.Trigger, null, /* @__PURE__ */ React5.createElement(Icon2, {
|
|
1144
1270
|
icon: "ph--warning-circle--regular",
|
|
1145
1271
|
classNames: errorText,
|
|
1146
1272
|
size: 5
|
|
1147
|
-
})
|
|
1273
|
+
})), /* @__PURE__ */ React5.createElement(Tooltip.Portal, null, /* @__PURE__ */ React5.createElement(Tooltip.Content, null, /* @__PURE__ */ React5.createElement("div", {
|
|
1274
|
+
className: "text-sm text-error-500"
|
|
1275
|
+
}, error.message), /* @__PURE__ */ React5.createElement(Tooltip.Arrow, null)))) || /* @__PURE__ */ React5.createElement(Spinner, {
|
|
1148
1276
|
active: processing
|
|
1149
1277
|
})), /* @__PURE__ */ React5.createElement(Prompt, {
|
|
1150
1278
|
ref: promptRef,
|
|
@@ -1152,6 +1280,7 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
|
|
|
1152
1280
|
classNames: "pbs-2",
|
|
1153
1281
|
lineWrapping: true,
|
|
1154
1282
|
placeholder: placeholder ?? t("prompt placeholder"),
|
|
1283
|
+
references,
|
|
1155
1284
|
...props
|
|
1156
1285
|
}), (onCancel || microphone) && /* @__PURE__ */ React5.createElement("div", {
|
|
1157
1286
|
className: "flex w-[--rail-action] h-[--rail-action] items-center justify-center"
|
|
@@ -1179,7 +1308,7 @@ var PromptBar = ({ classNames, placeholder, processing, error, microphone, onCan
|
|
|
1179
1308
|
};
|
|
1180
1309
|
|
|
1181
1310
|
// packages/plugins/experimental/plugin-assistant/src/components/Thread/Thread.tsx
|
|
1182
|
-
var Thread = ({ classNames, space, messages, collapse = true, transcription, processing, error, onSubmit, onCancel, onOpenChange, ...props }) => {
|
|
1311
|
+
var Thread = ({ classNames, space, messages, collapse = true, transcription, processing, error, onSubmit, onCancel, onOpenChange, contextProvider, ...props }) => {
|
|
1183
1312
|
const scroller = useRef3(null);
|
|
1184
1313
|
const identity = useIdentity();
|
|
1185
1314
|
const fallbackValue = keyToFallback(identity.identityKey);
|
|
@@ -1205,6 +1334,21 @@ var Thread = ({ classNames, space, messages, collapse = true, transcription, pro
|
|
|
1205
1334
|
messages,
|
|
1206
1335
|
collapse
|
|
1207
1336
|
]);
|
|
1337
|
+
const references = useMemo2(() => {
|
|
1338
|
+
if (!contextProvider) {
|
|
1339
|
+
return void 0;
|
|
1340
|
+
}
|
|
1341
|
+
return {
|
|
1342
|
+
getReferences: async ({ query }) => contextProvider.query({
|
|
1343
|
+
query
|
|
1344
|
+
}),
|
|
1345
|
+
resolveReference: async ({ uri }) => contextProvider.resolveMetadata({
|
|
1346
|
+
uri
|
|
1347
|
+
})
|
|
1348
|
+
};
|
|
1349
|
+
}, [
|
|
1350
|
+
contextProvider
|
|
1351
|
+
]);
|
|
1208
1352
|
return /* @__PURE__ */ React6.createElement("div", {
|
|
1209
1353
|
role: "none",
|
|
1210
1354
|
className: mx5("flex flex-col grow overflow-hidden", classNames)
|
|
@@ -1229,31 +1373,32 @@ var Thread = ({ classNames, space, messages, collapse = true, transcription, pro
|
|
|
1229
1373
|
error,
|
|
1230
1374
|
onSubmit: handleSubmit,
|
|
1231
1375
|
onCancel,
|
|
1232
|
-
onOpenChange
|
|
1376
|
+
onOpenChange,
|
|
1377
|
+
references
|
|
1233
1378
|
}));
|
|
1234
1379
|
};
|
|
1235
1380
|
|
|
1236
1381
|
// packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadContainer.tsx
|
|
1237
1382
|
import React7, { useCallback as useCallback3 } from "react";
|
|
1238
1383
|
import { invariant as invariant6 } from "@dxos/invariant";
|
|
1239
|
-
import { log as
|
|
1384
|
+
import { log as log10 } from "@dxos/log";
|
|
1240
1385
|
import { getSpace as getSpace2 } from "@dxos/react-client/echo";
|
|
1241
1386
|
|
|
1242
1387
|
// packages/plugins/experimental/plugin-assistant/src/hooks/processor.ts
|
|
1243
1388
|
import { batch, computed, signal } from "@preact/signals-core";
|
|
1244
1389
|
import { Message } from "@dxos/artifact";
|
|
1245
|
-
import { isToolUse, runTools, MixedStreamParser,
|
|
1390
|
+
import { isToolUse, runTools, MixedStreamParser, DEFAULT_EDGE_MODEL } from "@dxos/assistant";
|
|
1246
1391
|
import { createStatic } from "@dxos/echo-schema";
|
|
1247
1392
|
import { invariant as invariant3 } from "@dxos/invariant";
|
|
1248
1393
|
import { log as log5 } from "@dxos/log";
|
|
1249
1394
|
var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/hooks/processor.ts";
|
|
1250
1395
|
var defaultOptions = {
|
|
1251
|
-
model:
|
|
1396
|
+
model: DEFAULT_EDGE_MODEL,
|
|
1252
1397
|
systemPrompt: "you are a helpful assistant"
|
|
1253
1398
|
};
|
|
1254
1399
|
var ChatProcessor = class {
|
|
1255
|
-
constructor(
|
|
1256
|
-
this.
|
|
1400
|
+
constructor(_ai, _tools, _extensions, _options = defaultOptions) {
|
|
1401
|
+
this._ai = _ai;
|
|
1257
1402
|
this._tools = _tools;
|
|
1258
1403
|
this._extensions = _extensions;
|
|
1259
1404
|
this._options = _options;
|
|
@@ -1378,7 +1523,7 @@ var ChatProcessor = class {
|
|
|
1378
1523
|
S: this,
|
|
1379
1524
|
C: (f, a) => f(...a)
|
|
1380
1525
|
});
|
|
1381
|
-
this._stream = await this.
|
|
1526
|
+
this._stream = await this._ai.exec({
|
|
1382
1527
|
...this._options,
|
|
1383
1528
|
// TODO(burdon): Rename messages or separate history/message.
|
|
1384
1529
|
history: [
|
|
@@ -1448,37 +1593,49 @@ var ChatProcessor = class {
|
|
|
1448
1593
|
S: this,
|
|
1449
1594
|
C: (f, a) => f(...a)
|
|
1450
1595
|
});
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1596
|
+
if (err instanceof Error && err.message.includes("Overloaded")) {
|
|
1597
|
+
this.error.value = new AIServiecOverloadedError("AI service overloaded", {
|
|
1598
|
+
cause: err
|
|
1599
|
+
});
|
|
1600
|
+
} else {
|
|
1601
|
+
this.error.value = new Error("AI service error", {
|
|
1602
|
+
cause: err
|
|
1603
|
+
});
|
|
1604
|
+
}
|
|
1454
1605
|
} finally {
|
|
1455
1606
|
this._stream = void 0;
|
|
1456
1607
|
}
|
|
1457
1608
|
}
|
|
1458
1609
|
};
|
|
1610
|
+
var AIServiecOverloadedError = class extends Error {
|
|
1611
|
+
constructor() {
|
|
1612
|
+
super(...arguments);
|
|
1613
|
+
this.code = "AI_SERVICE_OVERLOADED";
|
|
1614
|
+
}
|
|
1615
|
+
};
|
|
1459
1616
|
|
|
1460
1617
|
// packages/plugins/experimental/plugin-assistant/src/hooks/useChatProcessor.tsx
|
|
1461
1618
|
import { useEffect as useEffect3, useMemo as useMemo3, useState as useState4 } from "react";
|
|
1462
1619
|
import { Capabilities as Capabilities2, useCapabilities as useCapabilities2, useCapability, useIntentDispatcher } from "@dxos/app-framework";
|
|
1463
1620
|
import { createSystemPrompt } from "@dxos/artifact";
|
|
1464
|
-
import {
|
|
1465
|
-
import { FunctionType as FunctionType2 } from "@dxos/functions";
|
|
1621
|
+
import { DEFAULT_EDGE_MODEL as DEFAULT_EDGE_MODEL2, DEFAULT_OLLAMA_MODEL } from "@dxos/assistant";
|
|
1622
|
+
import { FunctionType as FunctionType2 } from "@dxos/functions/types";
|
|
1466
1623
|
import { log as log6 } from "@dxos/log";
|
|
1467
1624
|
import { useConfig } from "@dxos/react-client";
|
|
1468
|
-
import { Filter as Filter2, useQuery as useQuery2 } from "@dxos/react-client/echo";
|
|
1625
|
+
import { Filter as Filter2, fullyQualifiedId, useQuery as useQuery2 } from "@dxos/react-client/echo";
|
|
1469
1626
|
import { isNonNullable as isNonNullable2 } from "@dxos/util";
|
|
1470
1627
|
|
|
1471
1628
|
// packages/plugins/experimental/plugin-assistant/src/capabilities/index.ts
|
|
1472
1629
|
import { lazy } from "@dxos/app-framework";
|
|
1473
|
-
var AiClient = lazy(() => import("./ai-client-
|
|
1474
|
-
var AppGraphBuilder = lazy(() => import("./app-graph-builder-
|
|
1475
|
-
var IntentResolver = lazy(() => import("./intent-resolver-
|
|
1476
|
-
var ReactSurface = lazy(() => import("./react-surface-
|
|
1477
|
-
var AssistantSettings = lazy(() => import("./settings-
|
|
1630
|
+
var AiClient = lazy(() => import("./ai-client-BAPVMSNX.mjs"));
|
|
1631
|
+
var AppGraphBuilder = lazy(() => import("./app-graph-builder-DTCUWBKB.mjs"));
|
|
1632
|
+
var IntentResolver = lazy(() => import("./intent-resolver-U57FXP3I.mjs"));
|
|
1633
|
+
var ReactSurface = lazy(() => import("./react-surface-KFLHNDNR.mjs"));
|
|
1634
|
+
var AssistantSettings = lazy(() => import("./settings-VAW6UWFL.mjs"));
|
|
1478
1635
|
|
|
1479
1636
|
// packages/plugins/experimental/plugin-assistant/src/hooks/useChatProcessor.tsx
|
|
1480
1637
|
var __dxlog_file7 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/hooks/useChatProcessor.tsx";
|
|
1481
|
-
var useChatProcessor = (space, settings) => {
|
|
1638
|
+
var useChatProcessor = ({ chat, space, settings, part = "deck" }) => {
|
|
1482
1639
|
const aiClient = useCapability(AssistantCapabilities.AiClient);
|
|
1483
1640
|
const globalTools = useCapabilities2(Capabilities2.Tools);
|
|
1484
1641
|
const artifactDefinitions = useCapabilities2(Capabilities2.ArtifactDefinition);
|
|
@@ -1488,7 +1645,7 @@ var useChatProcessor = (space, settings) => {
|
|
|
1488
1645
|
useEffect3(() => {
|
|
1489
1646
|
log6("creating service tools...", void 0, {
|
|
1490
1647
|
F: __dxlog_file7,
|
|
1491
|
-
L:
|
|
1648
|
+
L: 41,
|
|
1492
1649
|
S: void 0,
|
|
1493
1650
|
C: (f, a) => f(...a)
|
|
1494
1651
|
});
|
|
@@ -1501,10 +1658,13 @@ var useChatProcessor = (space, settings) => {
|
|
|
1501
1658
|
]);
|
|
1502
1659
|
const config = useConfig();
|
|
1503
1660
|
const functions = useQuery2(space, Filter2.schema(FunctionType2));
|
|
1661
|
+
const chatId = useMemo3(() => chat ? fullyQualifiedId(chat) : void 0, [
|
|
1662
|
+
chat
|
|
1663
|
+
]);
|
|
1504
1664
|
const [tools, extensions] = useMemo3(() => {
|
|
1505
1665
|
log6("creating tools...", void 0, {
|
|
1506
1666
|
F: __dxlog_file7,
|
|
1507
|
-
L:
|
|
1667
|
+
L: 53,
|
|
1508
1668
|
S: void 0,
|
|
1509
1669
|
C: (f, a) => f(...a)
|
|
1510
1670
|
});
|
|
@@ -1516,7 +1676,9 @@ var useChatProcessor = (space, settings) => {
|
|
|
1516
1676
|
];
|
|
1517
1677
|
const extensions2 = {
|
|
1518
1678
|
space,
|
|
1519
|
-
dispatch
|
|
1679
|
+
dispatch,
|
|
1680
|
+
pivotId: chatId,
|
|
1681
|
+
part
|
|
1520
1682
|
};
|
|
1521
1683
|
return [
|
|
1522
1684
|
tools2,
|
|
@@ -1527,6 +1689,7 @@ var useChatProcessor = (space, settings) => {
|
|
|
1527
1689
|
globalTools,
|
|
1528
1690
|
artifactDefinitions,
|
|
1529
1691
|
space,
|
|
1692
|
+
chatId,
|
|
1530
1693
|
serviceTools,
|
|
1531
1694
|
functions
|
|
1532
1695
|
]);
|
|
@@ -1535,37 +1698,36 @@ var useChatProcessor = (space, settings) => {
|
|
|
1535
1698
|
}), [
|
|
1536
1699
|
artifactDefinitions
|
|
1537
1700
|
]);
|
|
1701
|
+
const model = settings?.llmProvider === "ollama" ? settings?.ollamaModel ?? DEFAULT_OLLAMA_MODEL : settings?.edgeModel ?? DEFAULT_EDGE_MODEL2;
|
|
1538
1702
|
const processor = useMemo3(() => {
|
|
1539
1703
|
log6("creating processor...", {
|
|
1540
1704
|
settings
|
|
1541
1705
|
}, {
|
|
1542
1706
|
F: __dxlog_file7,
|
|
1543
|
-
L:
|
|
1707
|
+
L: 84,
|
|
1544
1708
|
S: void 0,
|
|
1545
1709
|
C: (f, a) => f(...a)
|
|
1546
1710
|
});
|
|
1547
|
-
return new ChatProcessor(aiClient, tools, extensions, {
|
|
1548
|
-
|
|
1549
|
-
model: settings?.llmModel ?? DEFAULT_LLM_MODEL2,
|
|
1550
|
-
// TOOD(burdon): Query.
|
|
1711
|
+
return new ChatProcessor(aiClient.value, tools, extensions, {
|
|
1712
|
+
model,
|
|
1551
1713
|
systemPrompt
|
|
1552
1714
|
});
|
|
1553
1715
|
}, [
|
|
1554
|
-
aiClient,
|
|
1716
|
+
aiClient.value,
|
|
1555
1717
|
tools,
|
|
1556
1718
|
extensions,
|
|
1557
|
-
|
|
1558
|
-
|
|
1719
|
+
model,
|
|
1720
|
+
systemPrompt
|
|
1559
1721
|
]);
|
|
1560
1722
|
return processor;
|
|
1561
1723
|
};
|
|
1562
1724
|
|
|
1563
1725
|
// packages/plugins/experimental/plugin-assistant/src/hooks/useLocalTriggerManager.ts
|
|
1564
1726
|
import { useEffect as useEffect4, useState as useState5 } from "react";
|
|
1565
|
-
import { Mutex } from "@dxos/async";
|
|
1727
|
+
import { Mutex as Mutex2 } from "@dxos/async";
|
|
1566
1728
|
import { Context } from "@dxos/context";
|
|
1567
1729
|
import { createSubscriptionTrigger } from "@dxos/functions";
|
|
1568
|
-
import { FunctionTrigger } from "@dxos/functions";
|
|
1730
|
+
import { FunctionTrigger } from "@dxos/functions/types";
|
|
1569
1731
|
import { invariant as invariant5 } from "@dxos/invariant";
|
|
1570
1732
|
import { log as log8 } from "@dxos/log";
|
|
1571
1733
|
import { useClient } from "@dxos/react-client";
|
|
@@ -1574,19 +1736,18 @@ import { Filter as Filter3, useQuery as useQuery3 } from "@dxos/react-client/ech
|
|
|
1574
1736
|
// packages/plugins/experimental/plugin-assistant/src/hooks/invocation-handler.ts
|
|
1575
1737
|
import { sleep } from "@dxos/async";
|
|
1576
1738
|
import { getObjectCore, ResultFormat } from "@dxos/echo-db";
|
|
1577
|
-
import { FunctionType as FunctionType3 } from "@dxos/functions";
|
|
1739
|
+
import { FunctionType as FunctionType3, getUserFunctionUrlInMetadata as getUserFunctionUrlInMetadata2 } from "@dxos/functions/types";
|
|
1578
1740
|
import { invariant as invariant4 } from "@dxos/invariant";
|
|
1579
1741
|
import { DXN, LOCAL_SPACE_TAG } from "@dxos/keys";
|
|
1580
1742
|
import { log as log7 } from "@dxos/log";
|
|
1581
1743
|
|
|
1582
1744
|
// packages/plugins/experimental/plugin-assistant/src/hooks/useLocalTriggerManager.ts
|
|
1583
|
-
var registerTriggersMutex = new
|
|
1745
|
+
var registerTriggersMutex = new Mutex2();
|
|
1584
1746
|
|
|
1585
1747
|
// packages/plugins/experimental/plugin-assistant/src/hooks/useMessageQueue.ts
|
|
1586
1748
|
import { useMemo as useMemo4 } from "react";
|
|
1587
1749
|
import { DXN as DXN2, QueueSubspaceTags } from "@dxos/keys";
|
|
1588
|
-
import { getSpace } from "@dxos/react-client/echo";
|
|
1589
|
-
import { useEdgeClient, useQueue } from "@dxos/react-edge-client";
|
|
1750
|
+
import { getSpace, useQueue } from "@dxos/react-client/echo";
|
|
1590
1751
|
var useMessageQueue = (chat) => {
|
|
1591
1752
|
const space = getSpace(chat);
|
|
1592
1753
|
const queueDxn = useMemo4(() => {
|
|
@@ -1600,8 +1761,7 @@ var useMessageQueue = (chat) => {
|
|
|
1600
1761
|
space,
|
|
1601
1762
|
chat?.queue.dxn
|
|
1602
1763
|
]);
|
|
1603
|
-
|
|
1604
|
-
return useQueue(edgeClient, queueDxn);
|
|
1764
|
+
return useQueue(queueDxn);
|
|
1605
1765
|
};
|
|
1606
1766
|
|
|
1607
1767
|
// packages/plugins/experimental/plugin-assistant/src/hooks/useServices.ts
|
|
@@ -1609,7 +1769,7 @@ import { useEffect as useEffect5, useMemo as useMemo5, useState as useState6 } f
|
|
|
1609
1769
|
|
|
1610
1770
|
// packages/plugins/experimental/plugin-assistant/src/testing/test-functions.ts
|
|
1611
1771
|
import { createSystemPrompt as createSystemPrompt2 } from "@dxos/artifact";
|
|
1612
|
-
import {
|
|
1772
|
+
import { DEFAULT_EDGE_MODEL as DEFAULT_EDGE_MODEL3 } from "@dxos/assistant";
|
|
1613
1773
|
|
|
1614
1774
|
// packages/plugins/experimental/plugin-assistant/src/testing/test-services.ts
|
|
1615
1775
|
import { createStatic as createStatic2 } from "@dxos/echo-schema";
|
|
@@ -1725,11 +1885,67 @@ var useServices = (space, query) => {
|
|
|
1725
1885
|
// packages/plugins/experimental/plugin-assistant/src/hooks/useTextInputEvents.ts
|
|
1726
1886
|
import { useState as useState7, useCallback as useCallback2 } from "react";
|
|
1727
1887
|
|
|
1888
|
+
// packages/plugins/experimental/plugin-assistant/src/hooks/useContextProvider.ts
|
|
1889
|
+
import { useMemo as useMemo6 } from "react";
|
|
1890
|
+
import { Capabilities as Capabilities3, useCapabilities as useCapabilities3 } from "@dxos/app-framework";
|
|
1891
|
+
import { getDXN, getLabel, getSchema } from "@dxos/echo-schema";
|
|
1892
|
+
import { log as log9 } from "@dxos/log";
|
|
1893
|
+
import { Filter as Filter4 } from "@dxos/react-client/echo";
|
|
1894
|
+
var __dxlog_file8 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/hooks/useContextProvider.ts";
|
|
1895
|
+
var stringMatch = (query, label) => label.toLowerCase().startsWith(query.toLowerCase());
|
|
1896
|
+
var useContextProvider = (space) => {
|
|
1897
|
+
const artifactDefinitions = useCapabilities3(Capabilities3.ArtifactDefinition);
|
|
1898
|
+
return useMemo6(() => {
|
|
1899
|
+
if (!space) {
|
|
1900
|
+
return void 0;
|
|
1901
|
+
}
|
|
1902
|
+
return {
|
|
1903
|
+
query: async ({ query }) => {
|
|
1904
|
+
const artifactSchemas = artifactDefinitions.map((artifact) => artifact.schema);
|
|
1905
|
+
const { objects } = await space.db.query(Filter4.or(...artifactSchemas.map((schema) => Filter4.schema(schema)))).run();
|
|
1906
|
+
return objects.map((object) => {
|
|
1907
|
+
log9.info("object", {
|
|
1908
|
+
object,
|
|
1909
|
+
label: getLabel(getSchema(object), object)
|
|
1910
|
+
}, {
|
|
1911
|
+
F: __dxlog_file8,
|
|
1912
|
+
L: 36,
|
|
1913
|
+
S: void 0,
|
|
1914
|
+
C: (f, a) => f(...a)
|
|
1915
|
+
});
|
|
1916
|
+
return object;
|
|
1917
|
+
}).filter((object) => stringMatch(query, getLabel(getSchema(object), object) ?? "")).filter((object) => !!getDXN(object)).map((object) => ({
|
|
1918
|
+
uri: getDXN(object).toString(),
|
|
1919
|
+
label: getLabel(getSchema(object), object) ?? ""
|
|
1920
|
+
}));
|
|
1921
|
+
},
|
|
1922
|
+
resolveMetadata: async ({ uri }) => {
|
|
1923
|
+
const object = await space.db.query({
|
|
1924
|
+
id: uri
|
|
1925
|
+
}).first();
|
|
1926
|
+
return {
|
|
1927
|
+
uri,
|
|
1928
|
+
label: getLabel(getSchema(object), object) ?? ""
|
|
1929
|
+
};
|
|
1930
|
+
}
|
|
1931
|
+
};
|
|
1932
|
+
}, [
|
|
1933
|
+
space,
|
|
1934
|
+
artifactDefinitions
|
|
1935
|
+
]);
|
|
1936
|
+
};
|
|
1937
|
+
|
|
1728
1938
|
// packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadContainer.tsx
|
|
1729
|
-
var
|
|
1730
|
-
var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) => {
|
|
1939
|
+
var __dxlog_file9 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-assistant/src/components/Thread/ThreadContainer.tsx";
|
|
1940
|
+
var ThreadContainer = ({ classNames, chat, settings, part, onOpenChange, ...props }) => {
|
|
1731
1941
|
const space = getSpace2(chat);
|
|
1732
|
-
const
|
|
1942
|
+
const contextProvider = useContextProvider(space);
|
|
1943
|
+
const processor = useChatProcessor({
|
|
1944
|
+
chat,
|
|
1945
|
+
space,
|
|
1946
|
+
settings,
|
|
1947
|
+
part
|
|
1948
|
+
});
|
|
1733
1949
|
const messageQueue = useMessageQueue(chat);
|
|
1734
1950
|
const messages = [
|
|
1735
1951
|
...messageQueue?.items ?? [],
|
|
@@ -1737,9 +1953,9 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
|
|
|
1737
1953
|
];
|
|
1738
1954
|
const handleSubmit = useCallback3((text) => {
|
|
1739
1955
|
if (processor.streaming.value) {
|
|
1740
|
-
|
|
1741
|
-
F:
|
|
1742
|
-
L:
|
|
1956
|
+
log10.warn("ignoring submit; still processing.", void 0, {
|
|
1957
|
+
F: __dxlog_file9,
|
|
1958
|
+
L: 41,
|
|
1743
1959
|
S: void 0,
|
|
1744
1960
|
C: (f, a) => f(...a)
|
|
1745
1961
|
});
|
|
@@ -1747,8 +1963,8 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
|
|
|
1747
1963
|
}
|
|
1748
1964
|
onOpenChange?.(true);
|
|
1749
1965
|
invariant6(messageQueue, void 0, {
|
|
1750
|
-
F:
|
|
1751
|
-
L:
|
|
1966
|
+
F: __dxlog_file9,
|
|
1967
|
+
L: 47,
|
|
1752
1968
|
S: void 0,
|
|
1753
1969
|
A: [
|
|
1754
1970
|
"messageQueue",
|
|
@@ -1785,6 +2001,7 @@ var ThreadContainer = ({ classNames, chat, settings, onOpenChange, ...props }) =
|
|
|
1785
2001
|
onCancel: handleCancel,
|
|
1786
2002
|
onPrompt: handleSubmit,
|
|
1787
2003
|
onOpenChange,
|
|
2004
|
+
contextProvider,
|
|
1788
2005
|
...props
|
|
1789
2006
|
});
|
|
1790
2007
|
};
|
|
@@ -1801,4 +2018,4 @@ export {
|
|
|
1801
2018
|
Thread,
|
|
1802
2019
|
ThreadContainer
|
|
1803
2020
|
};
|
|
1804
|
-
//# sourceMappingURL=chunk-
|
|
2021
|
+
//# sourceMappingURL=chunk-XFUCWOMV.mjs.map
|