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