@dxos/plugin-automation 0.7.5-labs.e27f9b9 → 0.7.5-labs.f5080a1
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/AutomationPanel-YPD3AGQN.mjs +8 -0
- package/dist/lib/browser/ChatContainer-ODZECATM.mjs +12 -0
- package/dist/lib/browser/{ai-client-AARXEMMJ.mjs → ai-client-UJLNYP7B.mjs} +3 -3
- package/dist/lib/browser/{app-graph-builder-B4U34VSR.mjs → app-graph-builder-3H5TCRG4.mjs} +2 -2
- package/dist/lib/browser/{chunk-7XADMUOW.mjs → chunk-43WRHV2L.mjs} +21 -76
- package/dist/lib/browser/chunk-43WRHV2L.mjs.map +7 -0
- package/dist/lib/browser/{chunk-HZ4TA7HY.mjs → chunk-BQHXJZ4K.mjs} +2 -2
- package/dist/lib/browser/{chunk-5SLV6AUA.mjs → chunk-DL7XA62G.mjs} +344 -180
- package/dist/lib/browser/chunk-DL7XA62G.mjs.map +7 -0
- package/dist/lib/browser/{chunk-HKX3D3ZP.mjs → chunk-DQ7ZSYJJ.mjs} +2 -2
- package/dist/lib/browser/{chunk-HKX3D3ZP.mjs.map → chunk-DQ7ZSYJJ.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-IYSMXX6Q.mjs → chunk-PQGFC2ZO.mjs} +13 -12
- package/dist/lib/{node-esm/chunk-3KB5HRXA.mjs.map → browser/chunk-PQGFC2ZO.mjs.map} +3 -3
- package/dist/lib/browser/{chunk-RAVNWHNE.mjs → chunk-Z54KIF6H.mjs} +5 -5
- package/dist/lib/browser/chunk-Z54KIF6H.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +11 -10
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-754MPV7H.mjs → intent-resolver-5YVZJFS3.mjs} +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-4QZ6AKBF.mjs → react-surface-WRHRCEV5.mjs} +9 -9
- package/dist/lib/browser/react-surface-WRHRCEV5.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +6 -6
- package/dist/lib/node/{AutomationPanel-LRDEDGXI.cjs → AutomationPanel-CO26O75P.cjs} +7 -7
- package/dist/lib/node/{AutomationPanel-LRDEDGXI.cjs.map → AutomationPanel-CO26O75P.cjs.map} +2 -2
- package/dist/lib/node/{ChatContainer-6LZX4K2Z.cjs → ChatContainer-5URBEXQD.cjs} +10 -10
- package/dist/lib/node/ChatContainer-5URBEXQD.cjs.map +7 -0
- package/dist/lib/node/{ai-client-SA35GN5Q.cjs → ai-client-AOB6TLNW.cjs} +7 -7
- package/dist/lib/node/{app-graph-builder-ENVDOPS4.cjs → app-graph-builder-CDEQJEHY.cjs} +14 -14
- package/dist/lib/node/{chunk-ZS5RZ7RM.cjs → chunk-AWZVJZ2I.cjs} +6 -6
- package/dist/lib/node/{chunk-HEYQONXC.cjs → chunk-D2QQXWOY.cjs} +26 -26
- package/dist/lib/node/{chunk-HEYQONXC.cjs.map → chunk-D2QQXWOY.cjs.map} +3 -3
- package/dist/lib/node/chunk-H3RSMGJG.cjs +173 -0
- package/dist/lib/node/chunk-H3RSMGJG.cjs.map +7 -0
- package/dist/lib/node/{chunk-6VMSH4P6.cjs → chunk-NH7STAX6.cjs} +392 -241
- package/dist/lib/node/chunk-NH7STAX6.cjs.map +7 -0
- package/dist/lib/node/{chunk-WWU5FVAO.cjs → chunk-OCW5GAVZ.cjs} +9 -9
- package/dist/lib/node/chunk-OCW5GAVZ.cjs.map +7 -0
- package/dist/lib/node/{chunk-5VF5JKUN.cjs → chunk-TQEDPRY5.cjs} +5 -5
- package/dist/lib/node/{chunk-5VF5JKUN.cjs.map → chunk-TQEDPRY5.cjs.map} +2 -2
- package/dist/lib/node/index.cjs +73 -72
- package/dist/lib/node/index.cjs.map +3 -3
- package/dist/lib/node/{intent-resolver-CNVBSG4E.cjs → intent-resolver-MJFZT5IU.cjs} +8 -8
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{react-surface-5HYLBDC3.cjs → react-surface-HDAVE6NU.cjs} +18 -18
- package/dist/lib/node/react-surface-HDAVE6NU.cjs.map +7 -0
- package/dist/lib/node/types/index.cjs +13 -13
- package/dist/lib/node/types/index.cjs.map +1 -1
- package/dist/lib/node-esm/{AutomationPanel-ZV7VEEPP.mjs → AutomationPanel-VQZUKPK2.mjs} +3 -3
- package/dist/lib/node-esm/{ChatContainer-PPVMC2FC.mjs → ChatContainer-23QIVDG5.mjs} +5 -5
- package/dist/lib/node-esm/{ai-client-2ZA4TYFZ.mjs → ai-client-RUCCJ7JZ.mjs} +3 -3
- package/dist/lib/node-esm/{app-graph-builder-IYOUCQZT.mjs → app-graph-builder-GR3URVNX.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-EVTLHDM2.mjs → chunk-7JO77AAS.mjs} +21 -76
- package/dist/lib/node-esm/chunk-7JO77AAS.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-X3LPRWIL.mjs → chunk-JFHI22MF.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-X3LPRWIL.mjs.map → chunk-JFHI22MF.mjs.map} +2 -2
- package/dist/lib/node-esm/{chunk-WISKXX7U.mjs → chunk-JJFWFS6P.mjs} +344 -180
- package/dist/lib/node-esm/chunk-JJFWFS6P.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ISYLEDVU.mjs → chunk-LSSWQIQD.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-MS7OIGVR.mjs → chunk-NSVQZ3EH.mjs} +5 -5
- package/dist/lib/node-esm/chunk-NSVQZ3EH.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-3KB5HRXA.mjs → chunk-VN2AFV25.mjs} +13 -12
- package/dist/lib/{browser/chunk-IYSMXX6Q.mjs.map → node-esm/chunk-VN2AFV25.mjs.map} +3 -3
- package/dist/lib/node-esm/index.mjs +11 -10
- package/dist/lib/node-esm/index.mjs.map +3 -3
- package/dist/lib/node-esm/{intent-resolver-RQBXW442.mjs → intent-resolver-FCKNRTKQ.mjs} +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-SS5WCRJ2.mjs → react-surface-FZ5OFRDE.mjs} +9 -9
- package/dist/lib/node-esm/react-surface-FZ5OFRDE.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +6 -6
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/ChatContainer/ChatContainer.d.ts +0 -1
- package/dist/types/src/components/ChatContainer/ChatContainer.d.ts.map +1 -1
- package/dist/types/src/components/ServiceRegistry/ServiceRegistry.stories.d.ts.map +1 -1
- package/dist/types/src/components/Thread/ThreadMessage.d.ts.map +1 -1
- package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +3 -1
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/processor.d.ts +7 -2
- package/dist/types/src/hooks/processor.d.ts.map +1 -1
- package/dist/types/src/hooks/useChatProcessor.d.ts +7 -0
- package/dist/types/src/hooks/useChatProcessor.d.ts.map +1 -0
- package/dist/types/src/hooks/useMessageQueue.d.ts +41 -0
- package/dist/types/src/hooks/useMessageQueue.d.ts.map +1 -0
- package/dist/types/src/hooks/useServices.d.ts +7 -0
- package/dist/types/src/hooks/useServices.d.ts.map +1 -0
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/testing/index.d.ts +2 -1
- package/dist/types/src/testing/index.d.ts.map +1 -1
- package/dist/types/src/testing/{testing.d.ts → test-functions.d.ts} +1 -1
- package/dist/types/src/testing/test-functions.d.ts.map +1 -0
- package/dist/types/src/testing/test-services.d.ts +5 -0
- package/dist/types/src/testing/test-services.d.ts.map +1 -0
- package/dist/types/src/types/registry.d.ts +7 -6
- package/dist/types/src/types/registry.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +94 -69
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/package.json +50 -50
- package/src/AutomationPlugin.tsx +2 -2
- package/src/capabilities/react-surface.tsx +4 -2
- package/src/components/ChatContainer/ChatContainer.tsx +15 -80
- package/src/components/ServiceRegistry/ServiceRegistry.stories.tsx +2 -1
- package/src/components/ServiceRegistry/ServiceRegistry.tsx +7 -7
- package/src/components/Thread/StatusLine.tsx +1 -1
- package/src/components/Thread/Tabbed.stories.tsx +1 -1
- package/src/components/Thread/Thread.tsx +1 -1
- package/src/components/Thread/ThreadMessage.tsx +24 -16
- package/src/components/Thread/ToggleContainer.stories.tsx +1 -1
- package/src/components/TriggerEditor/TriggerEditor.tsx +2 -4
- package/src/hooks/index.ts +3 -1
- package/src/hooks/processor.ts +16 -7
- package/src/hooks/useChatProcessor.tsx +86 -0
- package/src/hooks/useMessageQueue.ts +23 -0
- package/src/hooks/{useServiceRegistry.ts → useServices.ts} +8 -2
- package/src/meta.ts +2 -1
- package/src/testing/index.ts +2 -1
- package/src/testing/test-services.ts +131 -0
- package/src/types/registry.ts +17 -80
- package/src/types/schema.ts +20 -8
- package/dist/lib/browser/AutomationPanel-WFJZAW4F.mjs +0 -8
- package/dist/lib/browser/ChatContainer-OFCOZ5T2.mjs +0 -12
- package/dist/lib/browser/chunk-5SLV6AUA.mjs.map +0 -7
- package/dist/lib/browser/chunk-7XADMUOW.mjs.map +0 -7
- package/dist/lib/browser/chunk-RAVNWHNE.mjs.map +0 -7
- package/dist/lib/browser/react-surface-4QZ6AKBF.mjs.map +0 -7
- package/dist/lib/node/ChatContainer-6LZX4K2Z.cjs.map +0 -7
- package/dist/lib/node/chunk-6VMSH4P6.cjs.map +0 -7
- package/dist/lib/node/chunk-LU4HQWJD.cjs +0 -226
- package/dist/lib/node/chunk-LU4HQWJD.cjs.map +0 -7
- package/dist/lib/node/chunk-WWU5FVAO.cjs.map +0 -7
- package/dist/lib/node/react-surface-5HYLBDC3.cjs.map +0 -7
- package/dist/lib/node-esm/chunk-EVTLHDM2.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-MS7OIGVR.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-WISKXX7U.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-SS5WCRJ2.mjs.map +0 -7
- package/dist/types/src/hooks/useServiceRegistry.d.ts +0 -3
- package/dist/types/src/hooks/useServiceRegistry.d.ts.map +0 -1
- package/dist/types/src/testing/testing.d.ts.map +0 -1
- /package/dist/lib/browser/{AutomationPanel-WFJZAW4F.mjs.map → AutomationPanel-YPD3AGQN.mjs.map} +0 -0
- /package/dist/lib/browser/{ChatContainer-OFCOZ5T2.mjs.map → ChatContainer-ODZECATM.mjs.map} +0 -0
- /package/dist/lib/browser/{ai-client-AARXEMMJ.mjs.map → ai-client-UJLNYP7B.mjs.map} +0 -0
- /package/dist/lib/browser/{app-graph-builder-B4U34VSR.mjs.map → app-graph-builder-3H5TCRG4.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-HZ4TA7HY.mjs.map → chunk-BQHXJZ4K.mjs.map} +0 -0
- /package/dist/lib/browser/{intent-resolver-754MPV7H.mjs.map → intent-resolver-5YVZJFS3.mjs.map} +0 -0
- /package/dist/lib/node/{ai-client-SA35GN5Q.cjs.map → ai-client-AOB6TLNW.cjs.map} +0 -0
- /package/dist/lib/node/{app-graph-builder-ENVDOPS4.cjs.map → app-graph-builder-CDEQJEHY.cjs.map} +0 -0
- /package/dist/lib/node/{chunk-ZS5RZ7RM.cjs.map → chunk-AWZVJZ2I.cjs.map} +0 -0
- /package/dist/lib/node/{intent-resolver-CNVBSG4E.cjs.map → intent-resolver-MJFZT5IU.cjs.map} +0 -0
- /package/dist/lib/node-esm/{AutomationPanel-ZV7VEEPP.mjs.map → AutomationPanel-VQZUKPK2.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ChatContainer-PPVMC2FC.mjs.map → ChatContainer-23QIVDG5.mjs.map} +0 -0
- /package/dist/lib/node-esm/{ai-client-2ZA4TYFZ.mjs.map → ai-client-RUCCJ7JZ.mjs.map} +0 -0
- /package/dist/lib/node-esm/{app-graph-builder-IYOUCQZT.mjs.map → app-graph-builder-GR3URVNX.mjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-ISYLEDVU.mjs.map → chunk-LSSWQIQD.mjs.map} +0 -0
- /package/dist/lib/node-esm/{intent-resolver-RQBXW442.mjs.map → intent-resolver-FCKNRTKQ.mjs.map} +0 -0
- /package/src/testing/{testing.ts → test-functions.ts} +0 -0
|
@@ -2,21 +2,21 @@ import {
|
|
|
2
2
|
AutomationPanel,
|
|
3
3
|
ChatContainer,
|
|
4
4
|
ServiceRegistry
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-PQGFC2ZO.mjs";
|
|
6
|
+
import "./chunk-Z54KIF6H.mjs";
|
|
7
|
+
import "./chunk-DL7XA62G.mjs";
|
|
8
|
+
import "./chunk-BQHXJZ4K.mjs";
|
|
9
9
|
import {
|
|
10
10
|
AIChatType
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-43WRHV2L.mjs";
|
|
12
12
|
import {
|
|
13
13
|
AUTOMATION_PLUGIN
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-DQ7ZSYJJ.mjs";
|
|
15
15
|
|
|
16
16
|
// packages/plugins/experimental/plugin-automation/src/capabilities/react-surface.tsx
|
|
17
17
|
import React from "react";
|
|
18
18
|
import { Capabilities, contributes, createSurface } from "@dxos/app-framework";
|
|
19
|
-
import { getSpace, isEchoObject } from "@dxos/react-client/echo";
|
|
19
|
+
import { getSpace, isEchoObject, isSpace } from "@dxos/react-client/echo";
|
|
20
20
|
var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
21
21
|
createSurface({
|
|
22
22
|
id: `${AUTOMATION_PLUGIN}/ai-chat`,
|
|
@@ -31,7 +31,7 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
31
31
|
id: `${AUTOMATION_PLUGIN}/service-registry`,
|
|
32
32
|
role: "complementary--service-registry",
|
|
33
33
|
component: ({ data }) => /* @__PURE__ */ React.createElement(ServiceRegistry, {
|
|
34
|
-
space: getSpace(data.subject)
|
|
34
|
+
space: isSpace(data.subject) ? data.subject : getSpace(data.subject)
|
|
35
35
|
})
|
|
36
36
|
}),
|
|
37
37
|
createSurface({
|
|
@@ -47,4 +47,4 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
47
47
|
export {
|
|
48
48
|
react_surface_default as default
|
|
49
49
|
};
|
|
50
|
-
//# sourceMappingURL=react-surface-
|
|
50
|
+
//# sourceMappingURL=react-surface-WRHRCEV5.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/react-surface.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, createSurface } from '@dxos/app-framework';\nimport { getSpace, isEchoObject, isSpace, type ReactiveEchoObject } from '@dxos/react-client/echo';\n\nimport { AutomationPanel, ChatContainer, ServiceRegistry } from '../components';\nimport { AUTOMATION_PLUGIN } from '../meta';\nimport { AIChatType } from '../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${AUTOMATION_PLUGIN}/ai-chat`,\n role: 'article',\n filter: (data): data is { subject: AIChatType } => data.subject instanceof AIChatType,\n component: ({ data, role }) => <ChatContainer role={role} chat={data.subject} />,\n }),\n createSurface({\n id: `${AUTOMATION_PLUGIN}/service-registry`,\n role: 'complementary--service-registry',\n component: ({ data }) => (\n <ServiceRegistry space={isSpace(data.subject) ? data.subject : getSpace(data.subject)!} />\n ),\n }),\n createSurface({\n id: `${AUTOMATION_PLUGIN}/automation`,\n role: 'complementary--automation',\n filter: (data): data is { subject: ReactiveEchoObject<any> } =>\n isEchoObject(data.subject) && !!getSpace(data.subject),\n component: ({ data }) => <AutomationPanel space={getSpace(data.subject)!} object={data.subject} />,\n }),\n ]);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,qBAAqB;AACzD,SAASC,UAAUC,cAAcC,eAAwC;AAMzE,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,cAAc;IACZC,IAAI,GAAGC,iBAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SAA0CA,KAAKC,mBAAmBC;IAC3EC,WAAW,CAAC,EAAEH,MAAMF,KAAI,MAAO,sBAAA,cAACM,eAAAA;MAAcN;MAAYO,MAAML,KAAKC;;EACvE,CAAA;EACAN,cAAc;IACZC,IAAI,GAAGC,iBAAAA;IACPC,MAAM;IACNK,WAAW,CAAC,EAAEH,KAAI,MAChB,sBAAA,cAACM,iBAAAA;MAAgBC,OAAOC,QAAQR,KAAKC,OAAO,IAAID,KAAKC,UAAUQ,SAAST,KAAKC,OAAO;;EAExF,CAAA;EACAN,cAAc;IACZC,IAAI,GAAGC,iBAAAA;IACPC,MAAM;IACNC,QAAQ,CAACC,SACPU,aAAaV,KAAKC,OAAO,KAAK,CAAC,CAACQ,SAAST,KAAKC,OAAO;IACvDE,WAAW,CAAC,EAAEH,KAAI,MAAO,sBAAA,cAACW,iBAAAA;MAAgBJ,OAAOE,SAAST,KAAKC,OAAO;MAAIW,QAAQZ,KAAKC;;EACzF,CAAA;CACD;",
|
|
6
|
+
"names": ["React", "Capabilities", "contributes", "createSurface", "getSpace", "isEchoObject", "isSpace", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "AUTOMATION_PLUGIN", "role", "filter", "data", "subject", "AIChatType", "component", "ChatContainer", "chat", "ServiceRegistry", "space", "isSpace", "getSpace", "isEchoObject", "AutomationPanel", "object"]
|
|
7
|
+
}
|
|
@@ -6,10 +6,10 @@ import {
|
|
|
6
6
|
ChainInputType,
|
|
7
7
|
ChainPromptType,
|
|
8
8
|
ChainType,
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
} from "../chunk-
|
|
12
|
-
import "../chunk-
|
|
9
|
+
ServiceType,
|
|
10
|
+
categoryIcons
|
|
11
|
+
} from "../chunk-43WRHV2L.mjs";
|
|
12
|
+
import "../chunk-DQ7ZSYJJ.mjs";
|
|
13
13
|
export {
|
|
14
14
|
AIChatType,
|
|
15
15
|
ApiAuthorization,
|
|
@@ -18,7 +18,7 @@ export {
|
|
|
18
18
|
ChainInputType,
|
|
19
19
|
ChainPromptType,
|
|
20
20
|
ChainType,
|
|
21
|
-
|
|
22
|
-
|
|
21
|
+
ServiceType,
|
|
22
|
+
categoryIcons
|
|
23
23
|
};
|
|
24
24
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -16,11 +16,11 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
default: () =>
|
|
19
|
+
var AutomationPanel_CO26O75P_exports = {};
|
|
20
|
+
__export(AutomationPanel_CO26O75P_exports, {
|
|
21
|
+
default: () => import_chunk_OCW5GAVZ.AutomationPanel_default
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
24
|
-
var
|
|
25
|
-
var
|
|
26
|
-
//# sourceMappingURL=AutomationPanel-
|
|
23
|
+
module.exports = __toCommonJS(AutomationPanel_CO26O75P_exports);
|
|
24
|
+
var import_chunk_OCW5GAVZ = require("./chunk-OCW5GAVZ.cjs");
|
|
25
|
+
var import_chunk_TQEDPRY5 = require("./chunk-TQEDPRY5.cjs");
|
|
26
|
+
//# sourceMappingURL=AutomationPanel-CO26O75P.cjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["AutomationPanel-
|
|
4
|
-
"sourcesContent": ["import {\n AutomationPanel_default\n} from \"./chunk-
|
|
3
|
+
"sources": ["AutomationPanel-CO26O75P.cjs"],
|
|
4
|
+
"sourcesContent": ["import {\n AutomationPanel_default\n} from \"./chunk-OCW5GAVZ.cjs\";\nimport \"./chunk-TQEDPRY5.cjs\";\nexport {\n AutomationPanel_default as default\n};\n//# sourceMappingURL=AutomationPanel-CO26O75P.cjs.map\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAEO;AACP,4BAAO;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -16,18 +16,18 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
21
|
-
ChatContainer: () =>
|
|
22
|
-
default: () =>
|
|
19
|
+
var ChatContainer_5URBEXQD_exports = {};
|
|
20
|
+
__export(ChatContainer_5URBEXQD_exports, {
|
|
21
|
+
ChatContainer: () => import_chunk_NH7STAX6.ChatContainer,
|
|
22
|
+
default: () => import_chunk_NH7STAX6.ChatContainer_default
|
|
23
23
|
});
|
|
24
|
-
module.exports = __toCommonJS(
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
var
|
|
24
|
+
module.exports = __toCommonJS(ChatContainer_5URBEXQD_exports);
|
|
25
|
+
var import_chunk_NH7STAX6 = require("./chunk-NH7STAX6.cjs");
|
|
26
|
+
var import_chunk_AWZVJZ2I = require("./chunk-AWZVJZ2I.cjs");
|
|
27
|
+
var import_chunk_H3RSMGJG = require("./chunk-H3RSMGJG.cjs");
|
|
28
|
+
var import_chunk_TQEDPRY5 = require("./chunk-TQEDPRY5.cjs");
|
|
29
29
|
// Annotate the CommonJS export names for ESM import in node:
|
|
30
30
|
0 && (module.exports = {
|
|
31
31
|
ChatContainer
|
|
32
32
|
});
|
|
33
|
-
//# sourceMappingURL=ChatContainer-
|
|
33
|
+
//# sourceMappingURL=ChatContainer-5URBEXQD.cjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["ChatContainer-5URBEXQD.cjs"],
|
|
4
|
+
"sourcesContent": ["import {\n ChatContainer,\n ChatContainer_default\n} from \"./chunk-NH7STAX6.cjs\";\nimport \"./chunk-AWZVJZ2I.cjs\";\nimport \"./chunk-H3RSMGJG.cjs\";\nimport \"./chunk-TQEDPRY5.cjs\";\nexport {\n ChatContainer,\n ChatContainer_default as default\n};\n//# sourceMappingURL=ChatContainer-5URBEXQD.cjs.map\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAGO;AACP,4BAAO;AACP,4BAAO;AACP,4BAAO;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -16,13 +16,13 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var ai_client_AOB6TLNW_exports = {};
|
|
20
|
+
__export(ai_client_AOB6TLNW_exports, {
|
|
21
21
|
default: () => ai_client_default
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
24
|
-
var
|
|
25
|
-
var
|
|
23
|
+
module.exports = __toCommonJS(ai_client_AOB6TLNW_exports);
|
|
24
|
+
var import_chunk_AWZVJZ2I = require("./chunk-AWZVJZ2I.cjs");
|
|
25
|
+
var import_chunk_TQEDPRY5 = require("./chunk-TQEDPRY5.cjs");
|
|
26
26
|
var import_app_framework = require("@dxos/app-framework");
|
|
27
27
|
var import_assistant = require("@dxos/assistant");
|
|
28
28
|
var import_plugin_client = require("@dxos/plugin-client");
|
|
@@ -33,6 +33,6 @@ var ai_client_default = (context) => {
|
|
|
33
33
|
const aiClient = new import_assistant.AIServiceClientImpl({
|
|
34
34
|
endpoint
|
|
35
35
|
});
|
|
36
|
-
return (0, import_app_framework.contributes)(
|
|
36
|
+
return (0, import_app_framework.contributes)(import_chunk_AWZVJZ2I.AutomationCapabilities.AiClient, aiClient);
|
|
37
37
|
};
|
|
38
|
-
//# sourceMappingURL=ai-client-
|
|
38
|
+
//# sourceMappingURL=ai-client-AOB6TLNW.cjs.map
|
|
@@ -16,12 +16,12 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var app_graph_builder_CDEQJEHY_exports = {};
|
|
20
|
+
__export(app_graph_builder_CDEQJEHY_exports, {
|
|
21
21
|
default: () => app_graph_builder_default
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
24
|
-
var
|
|
23
|
+
module.exports = __toCommonJS(app_graph_builder_CDEQJEHY_exports);
|
|
24
|
+
var import_chunk_TQEDPRY5 = require("./chunk-TQEDPRY5.cjs");
|
|
25
25
|
var import_app_framework = require("@dxos/app-framework");
|
|
26
26
|
var import_plugin_client = require("@dxos/plugin-client");
|
|
27
27
|
var import_plugin_graph = require("@dxos/plugin-graph");
|
|
@@ -31,7 +31,7 @@ var app_graph_builder_default = (context) => {
|
|
|
31
31
|
const resolve = (typename) => context.requestCapabilities(import_app_framework.Capabilities.Metadata).find(({ id }) => id === typename)?.metadata ?? {};
|
|
32
32
|
return (0, import_app_framework.contributes)(import_app_framework.Capabilities.AppGraphBuilder, [
|
|
33
33
|
(0, import_plugin_graph.createExtension)({
|
|
34
|
-
id: `${
|
|
34
|
+
id: `${import_chunk_TQEDPRY5.AUTOMATION_PLUGIN}/service-registry`,
|
|
35
35
|
resolver: ({ id }) => {
|
|
36
36
|
if (!id.endsWith("~service-registry")) {
|
|
37
37
|
return;
|
|
@@ -52,7 +52,7 @@ var app_graph_builder_default = (context) => {
|
|
|
52
52
|
label: [
|
|
53
53
|
"service registry label",
|
|
54
54
|
{
|
|
55
|
-
ns:
|
|
55
|
+
ns: import_chunk_TQEDPRY5.AUTOMATION_PLUGIN
|
|
56
56
|
}
|
|
57
57
|
],
|
|
58
58
|
object: null,
|
|
@@ -62,7 +62,7 @@ var app_graph_builder_default = (context) => {
|
|
|
62
62
|
}
|
|
63
63
|
}),
|
|
64
64
|
(0, import_plugin_graph.createExtension)({
|
|
65
|
-
id: `${
|
|
65
|
+
id: `${import_chunk_TQEDPRY5.AUTOMATION_PLUGIN}/automation-for-subject`,
|
|
66
66
|
resolver: ({ id }) => {
|
|
67
67
|
if (!id.endsWith("~automation")) {
|
|
68
68
|
return;
|
|
@@ -78,12 +78,12 @@ var app_graph_builder_default = (context) => {
|
|
|
78
78
|
const label2 = space ? space.properties.name || [
|
|
79
79
|
"unnamed space label",
|
|
80
80
|
{
|
|
81
|
-
ns:
|
|
81
|
+
ns: import_chunk_TQEDPRY5.AUTOMATION_PLUGIN
|
|
82
82
|
}
|
|
83
83
|
] : [
|
|
84
84
|
"unnamed object settings label",
|
|
85
85
|
{
|
|
86
|
-
ns:
|
|
86
|
+
ns: import_chunk_TQEDPRY5.AUTOMATION_PLUGIN
|
|
87
87
|
}
|
|
88
88
|
];
|
|
89
89
|
return {
|
|
@@ -109,7 +109,7 @@ var app_graph_builder_default = (context) => {
|
|
|
109
109
|
const label = meta.label?.(object) || object.name || meta.placeholder || [
|
|
110
110
|
"unnamed object settings label",
|
|
111
111
|
{
|
|
112
|
-
ns:
|
|
112
|
+
ns: import_chunk_TQEDPRY5.AUTOMATION_PLUGIN
|
|
113
113
|
}
|
|
114
114
|
];
|
|
115
115
|
return {
|
|
@@ -125,7 +125,7 @@ var app_graph_builder_default = (context) => {
|
|
|
125
125
|
}
|
|
126
126
|
}),
|
|
127
127
|
(0, import_plugin_graph.createExtension)({
|
|
128
|
-
id: `${
|
|
128
|
+
id: `${import_chunk_TQEDPRY5.AUTOMATION_PLUGIN}/assistant-for-subject`,
|
|
129
129
|
resolver: ({ id }) => {
|
|
130
130
|
if (!id.endsWith("~assistant")) {
|
|
131
131
|
return;
|
|
@@ -145,7 +145,7 @@ var app_graph_builder_default = (context) => {
|
|
|
145
145
|
label: [
|
|
146
146
|
"assistant panel label",
|
|
147
147
|
{
|
|
148
|
-
ns:
|
|
148
|
+
ns: import_chunk_TQEDPRY5.AUTOMATION_PLUGIN
|
|
149
149
|
}
|
|
150
150
|
],
|
|
151
151
|
object: null,
|
|
@@ -165,7 +165,7 @@ var app_graph_builder_default = (context) => {
|
|
|
165
165
|
label: [
|
|
166
166
|
"assistant panel label",
|
|
167
167
|
{
|
|
168
|
-
ns:
|
|
168
|
+
ns: import_chunk_TQEDPRY5.AUTOMATION_PLUGIN
|
|
169
169
|
}
|
|
170
170
|
],
|
|
171
171
|
object
|
|
@@ -175,4 +175,4 @@ var app_graph_builder_default = (context) => {
|
|
|
175
175
|
})
|
|
176
176
|
]);
|
|
177
177
|
};
|
|
178
|
-
//# sourceMappingURL=app-graph-builder-
|
|
178
|
+
//# sourceMappingURL=app-graph-builder-CDEQJEHY.cjs.map
|
|
@@ -16,19 +16,19 @@ var __copyProps = (to, from, except, desc) => {
|
|
|
16
16
|
return to;
|
|
17
17
|
};
|
|
18
18
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var
|
|
20
|
-
__export(
|
|
19
|
+
var chunk_AWZVJZ2I_exports = {};
|
|
20
|
+
__export(chunk_AWZVJZ2I_exports, {
|
|
21
21
|
AutomationCapabilities: () => AutomationCapabilities
|
|
22
22
|
});
|
|
23
|
-
module.exports = __toCommonJS(
|
|
24
|
-
var
|
|
23
|
+
module.exports = __toCommonJS(chunk_AWZVJZ2I_exports);
|
|
24
|
+
var import_chunk_TQEDPRY5 = require("./chunk-TQEDPRY5.cjs");
|
|
25
25
|
var import_app_framework = require("@dxos/app-framework");
|
|
26
26
|
var AutomationCapabilities;
|
|
27
27
|
(function(AutomationCapabilities2) {
|
|
28
|
-
AutomationCapabilities2.AiClient = (0, import_app_framework.defineCapability)(`${
|
|
28
|
+
AutomationCapabilities2.AiClient = (0, import_app_framework.defineCapability)(`${import_chunk_TQEDPRY5.AUTOMATION_PLUGIN}/capability/ai-client`);
|
|
29
29
|
})(AutomationCapabilities || (AutomationCapabilities = {}));
|
|
30
30
|
// Annotate the CommonJS export names for ESM import in node:
|
|
31
31
|
0 && (module.exports = {
|
|
32
32
|
AutomationCapabilities
|
|
33
33
|
});
|
|
34
|
-
//# sourceMappingURL=chunk-
|
|
34
|
+
//# sourceMappingURL=chunk-AWZVJZ2I.cjs.map
|
|
@@ -26,17 +26,17 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var chunk_D2QQXWOY_exports = {};
|
|
30
|
+
__export(chunk_D2QQXWOY_exports, {
|
|
31
31
|
AutomationPanel: () => AutomationPanel,
|
|
32
32
|
ChatContainer: () => ChatContainer,
|
|
33
33
|
PromptEditor: () => PromptEditor,
|
|
34
34
|
ServiceRegistry: () => ServiceRegistry
|
|
35
35
|
});
|
|
36
|
-
module.exports = __toCommonJS(
|
|
37
|
-
var
|
|
38
|
-
var
|
|
39
|
-
var
|
|
36
|
+
module.exports = __toCommonJS(chunk_D2QQXWOY_exports);
|
|
37
|
+
var import_chunk_NH7STAX6 = require("./chunk-NH7STAX6.cjs");
|
|
38
|
+
var import_chunk_H3RSMGJG = require("./chunk-H3RSMGJG.cjs");
|
|
39
|
+
var import_chunk_TQEDPRY5 = require("./chunk-TQEDPRY5.cjs");
|
|
40
40
|
var import_react = __toESM(require("react"));
|
|
41
41
|
var import_echo = require("@dxos/react-client/echo");
|
|
42
42
|
var import_react_ui = require("@dxos/react-ui");
|
|
@@ -82,15 +82,15 @@ var promptExtension = [
|
|
|
82
82
|
];
|
|
83
83
|
var inputTypes = [
|
|
84
84
|
{
|
|
85
|
-
value:
|
|
85
|
+
value: import_chunk_H3RSMGJG.ChainInputType.VALUE,
|
|
86
86
|
label: "Value"
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
|
-
value:
|
|
89
|
+
value: import_chunk_H3RSMGJG.ChainInputType.PASS_THROUGH,
|
|
90
90
|
label: "Pass through"
|
|
91
91
|
},
|
|
92
92
|
{
|
|
93
|
-
value:
|
|
93
|
+
value: import_chunk_H3RSMGJG.ChainInputType.RETRIEVER,
|
|
94
94
|
label: "Retriever"
|
|
95
95
|
},
|
|
96
96
|
// {
|
|
@@ -102,15 +102,15 @@ var inputTypes = [
|
|
|
102
102
|
// label: 'Query',
|
|
103
103
|
// },
|
|
104
104
|
{
|
|
105
|
-
value:
|
|
105
|
+
value: import_chunk_H3RSMGJG.ChainInputType.RESOLVER,
|
|
106
106
|
label: "Resolver"
|
|
107
107
|
},
|
|
108
108
|
{
|
|
109
|
-
value:
|
|
109
|
+
value: import_chunk_H3RSMGJG.ChainInputType.CONTEXT,
|
|
110
110
|
label: "Context"
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
|
-
value:
|
|
113
|
+
value: import_chunk_H3RSMGJG.ChainInputType.SCHEMA,
|
|
114
114
|
label: "Schema"
|
|
115
115
|
}
|
|
116
116
|
];
|
|
@@ -156,7 +156,7 @@ var usePromptInputs = (prompt) => {
|
|
|
156
156
|
]);
|
|
157
157
|
};
|
|
158
158
|
var PromptEditor = ({ prompt, commandEditable = true }) => {
|
|
159
|
-
const { t } = (0, import_react_ui.useTranslation)(
|
|
159
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_TQEDPRY5.AUTOMATION_PLUGIN);
|
|
160
160
|
const { themeMode } = (0, import_react_ui.useThemeContext)();
|
|
161
161
|
const { parentRef } = (0, import_react_ui_editor.useTextEditor)(() => ({
|
|
162
162
|
initialValue: prompt.template,
|
|
@@ -218,7 +218,7 @@ var PromptEditor = ({ prompt, commandEditable = true }) => {
|
|
|
218
218
|
}, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.Root, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.Root, {
|
|
219
219
|
value: String(input.type),
|
|
220
220
|
onValueChange: (type) => {
|
|
221
|
-
input.type = getInputType(type) ??
|
|
221
|
+
input.type = getInputType(type) ?? import_chunk_H3RSMGJG.ChainInputType.VALUE;
|
|
222
222
|
}
|
|
223
223
|
}, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Select.TriggerButton, {
|
|
224
224
|
placeholder: "Type",
|
|
@@ -229,10 +229,10 @@ var PromptEditor = ({ prompt, commandEditable = true }) => {
|
|
|
229
229
|
}, label)))))))), /* @__PURE__ */ import_react.default.createElement("td", {
|
|
230
230
|
className: "p-1 pr-2"
|
|
231
231
|
}, input.type !== void 0 && [
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
232
|
+
import_chunk_H3RSMGJG.ChainInputType.VALUE,
|
|
233
|
+
import_chunk_H3RSMGJG.ChainInputType.CONTEXT,
|
|
234
|
+
import_chunk_H3RSMGJG.ChainInputType.RESOLVER,
|
|
235
|
+
import_chunk_H3RSMGJG.ChainInputType.SCHEMA
|
|
236
236
|
].includes(input.type) && /* @__PURE__ */ import_react.default.createElement("div", null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.Root, null, /* @__PURE__ */ import_react.default.createElement(import_react_ui.Input.TextInput, {
|
|
237
237
|
placeholder: t("command placeholder"),
|
|
238
238
|
classNames: (0, import_react_ui_theme.mx)("is-full bg-transparent"),
|
|
@@ -243,8 +243,8 @@ var PromptEditor = ({ prompt, commandEditable = true }) => {
|
|
|
243
243
|
}))))))))));
|
|
244
244
|
};
|
|
245
245
|
var ServiceRegistry = ({ space }) => {
|
|
246
|
-
const matchingServices = (0,
|
|
247
|
-
const enabledServices = (0, import_echo3.useQuery)(space, import_echo2.Filter.schema(
|
|
246
|
+
const matchingServices = (0, import_chunk_NH7STAX6.useServices)(space);
|
|
247
|
+
const enabledServices = (0, import_echo3.useQuery)(space, import_echo2.Filter.schema(import_chunk_H3RSMGJG.ServiceType));
|
|
248
248
|
const services = (0, import_react2.useMemo)(() => {
|
|
249
249
|
return matchingServices.map((service) => enabledServices.find((s) => s.serviceId === service.serviceId) ?? service);
|
|
250
250
|
}, [
|
|
@@ -259,7 +259,7 @@ var ServiceRegistry = ({ space }) => {
|
|
|
259
259
|
}
|
|
260
260
|
};
|
|
261
261
|
return /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.List, {
|
|
262
|
-
classNames: "h-full grid auto-rows-[5rem] gap-2 p-2 pis-2 pie-
|
|
262
|
+
classNames: "h-full grid auto-rows-[5rem] gap-2 p-2 pis-2 pie-2 overflow-y-auto scrollbar-thin"
|
|
263
263
|
}, services.map((service) => /* @__PURE__ */ import_react2.default.createElement(ServiceItem, {
|
|
264
264
|
key: service.serviceId,
|
|
265
265
|
service,
|
|
@@ -275,7 +275,7 @@ var ServiceItem = ({ service, enabled, setEnabled }) => {
|
|
|
275
275
|
}, /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
276
276
|
className: "flex gow justify-center items-center"
|
|
277
277
|
}, /* @__PURE__ */ import_react2.default.createElement(import_react_ui2.Icon, {
|
|
278
|
-
icon: "ph--placeholder--regular",
|
|
278
|
+
icon: import_chunk_H3RSMGJG.categoryIcons[service.category ?? "default"] ?? "ph--placeholder--regular",
|
|
279
279
|
size: 6
|
|
280
280
|
})), /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
281
281
|
className: "grow items-center truncate mie-2"
|
|
@@ -287,11 +287,11 @@ var ServiceItem = ({ service, enabled, setEnabled }) => {
|
|
|
287
287
|
})))), /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
288
288
|
className: "grid grid-cols-[40px_1fr]"
|
|
289
289
|
}, /* @__PURE__ */ import_react2.default.createElement("div", null), /* @__PURE__ */ import_react2.default.createElement("div", {
|
|
290
|
-
className: "text-sm text-subdued line-clamp-2"
|
|
290
|
+
className: "text-sm text-subdued line-clamp-2 mie-1"
|
|
291
291
|
}, service.description)));
|
|
292
292
|
};
|
|
293
|
-
var AutomationPanel = (0, import_react3.lazy)(() => import("./AutomationPanel-
|
|
294
|
-
var ChatContainer = (0, import_react3.lazy)(() => import("./ChatContainer-
|
|
293
|
+
var AutomationPanel = (0, import_react3.lazy)(() => import("./AutomationPanel-CO26O75P.cjs"));
|
|
294
|
+
var ChatContainer = (0, import_react3.lazy)(() => import("./ChatContainer-5URBEXQD.cjs"));
|
|
295
295
|
// Annotate the CommonJS export names for ESM import in node:
|
|
296
296
|
0 && (module.exports = {
|
|
297
297
|
AutomationPanel,
|
|
@@ -299,4 +299,4 @@ var ChatContainer = (0, import_react3.lazy)(() => import("./ChatContainer-6LZX4K
|
|
|
299
299
|
PromptEditor,
|
|
300
300
|
ServiceRegistry
|
|
301
301
|
});
|
|
302
|
-
//# sourceMappingURL=chunk-
|
|
302
|
+
//# sourceMappingURL=chunk-D2QQXWOY.cjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/components/PromptEditor/PromptEditor.tsx", "../../../src/components/PromptEditor/prompt-extension.ts", "../../../src/components/ServiceRegistry/ServiceRegistry.tsx", "../../../src/components/index.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Schema as S } from '@effect/schema';\nimport React, { useEffect } from 'react';\n\nimport { createDocAccessor } from '@dxos/react-client/echo';\nimport { Input, Select, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport {\n createBasicExtensions,\n createDataExtensions,\n createThemeExtensions,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport { attentionSurface, groupBorder, mx } from '@dxos/react-ui-theme';\nimport { nonNullable } from '@dxos/util';\n\nimport { nameRegex, promptExtension } from './prompt-extension';\nimport { AUTOMATION_PLUGIN } from '../../meta';\nimport { type ChainInput, ChainInputType, type ChainPromptType } from '../../types';\n\nconst inputTypes = [\n {\n value: ChainInputType.VALUE,\n label: 'Value',\n },\n {\n value: ChainInputType.PASS_THROUGH,\n label: 'Pass through',\n },\n {\n value: ChainInputType.RETRIEVER,\n label: 'Retriever',\n },\n // {\n // value: ChainInputType.FUNCTION,\n // label: 'Function',\n // },\n // {\n // value: ChainInputType.QUERY,\n // label: 'Query',\n // },\n {\n value: ChainInputType.RESOLVER,\n label: 'Resolver',\n },\n {\n value: ChainInputType.CONTEXT,\n label: 'Context',\n },\n {\n value: ChainInputType.SCHEMA,\n label: 'Schema',\n },\n];\n\nconst getInputType = (type: string) => inputTypes.find(({ value }) => String(value) === type)?.value;\n\nconst usePromptInputs = (prompt: ChainPromptType) => {\n useEffect(() => {\n const text = prompt.template ?? '';\n if (!prompt.inputs) {\n prompt.inputs = []; // TODO(burdon): Required?\n }\n\n const regex = new RegExp(nameRegex, 'g');\n const variables = new Set<string>([...text.matchAll(regex)].map((m) => m[1]));\n\n // Create map of unclaimed inputs.\n const unclaimed = new Map<string, ChainInput>(\n prompt.inputs?.filter(nonNullable).map((input) => [input.name, input]),\n );\n const missing: string[] = [];\n Array.from(variables.values()).forEach((name) => {\n if (unclaimed.has(name)) {\n unclaimed.delete(name);\n } else {\n missing.push(name);\n }\n });\n\n // Match or create new inputs.\n const values = unclaimed.values();\n missing.forEach((name) => {\n const next = values.next().value;\n if (next) {\n next.name = name;\n } else {\n prompt.inputs?.push({ name });\n }\n });\n\n // Remove unclaimed (deleted) inputs.\n // TODO(burdon): If user types incorrect name value, it will be deleted. Garbage collect?\n for (const input of values) {\n prompt.inputs.splice(prompt.inputs.indexOf(input), 1);\n }\n }, [prompt.template]);\n};\n\nexport type PromptEditorProps = {\n prompt: ChainPromptType;\n commandEditable?: boolean;\n schema?: S.Schema<any, any, any>;\n};\n\nexport const PromptEditor = ({ prompt, commandEditable = true }: PromptEditorProps) => {\n const { t } = useTranslation(AUTOMATION_PLUGIN);\n const { themeMode } = useThemeContext();\n\n const { parentRef } = useTextEditor(\n () => ({\n initialValue: prompt.template,\n extensions: [\n createDataExtensions({\n id: prompt.id,\n text: prompt.template !== undefined ? createDocAccessor(prompt, ['template']) : undefined,\n }),\n createBasicExtensions({\n bracketMatching: false,\n lineWrapping: true,\n placeholder: t('template placeholder'),\n }),\n createThemeExtensions({\n themeMode,\n slots: {\n content: { className: '!p-3' },\n },\n }),\n promptExtension,\n ],\n }),\n [themeMode, prompt],\n );\n\n usePromptInputs(prompt);\n\n return (\n <div className={mx('flex flex-col w-full overflow-hidden gap-4', groupBorder)}>\n {commandEditable && (\n <div className='flex items-center pl-4'>\n <span className='text-neutral-500'>/</span>\n <Input.Root>\n <Input.TextInput\n placeholder={t('command placeholder')}\n classNames={mx('is-full bg-transparent m-2')}\n value={prompt.command ?? ''}\n onChange={(event) => {\n prompt.command = event.target.value.replace(/\\w/g, '');\n }}\n />\n </Input.Root>\n </div>\n )}\n\n <div ref={parentRef} className={mx(attentionSurface, 'rounded', 'min-h-[120px]')} />\n\n {(prompt.inputs?.length ?? 0) > 0 && (\n <div className='flex flex-col'>\n {/* TODO(zan): Improve layout with grid */}\n <table className='w-full table-fixed border-collapse my-2'>\n <tbody>\n {prompt.inputs?.filter(nonNullable).map((input) => (\n <tr key={input.name}>\n <td className='w-[160px] p-1 font-mono text-sm whitespace-nowrap truncate'>\n <code className='px-2'>{input.name}</code>\n </td>\n <td className='w-[120px] p-1'>\n <Input.Root>\n <Select.Root\n value={String(input.type)}\n onValueChange={(type) => {\n input.type = getInputType(type) ?? ChainInputType.VALUE;\n }}\n >\n <Select.TriggerButton placeholder='Type' classNames='is-full' />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {inputTypes.map(({ value, label }) => (\n <Select.Option key={value} value={String(value)}>\n {label}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </Input.Root>\n </td>\n <td className='p-1 pr-2'>\n {input.type !== undefined &&\n [\n ChainInputType.VALUE,\n ChainInputType.CONTEXT,\n ChainInputType.RESOLVER,\n ChainInputType.SCHEMA,\n ].includes(input.type) && (\n <div>\n <Input.Root>\n <Input.TextInput\n placeholder={t('command placeholder')}\n classNames={mx('is-full bg-transparent')}\n value={input.value ?? ''}\n onChange={(event) => {\n input.value = event.target.value;\n }}\n />\n </Input.Root>\n </div>\n )}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )}\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { HighlightStyle, StreamLanguage, syntaxHighlighting } from '@codemirror/language';\nimport { type Extension } from '@codemirror/state';\n\nimport { tags } from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\n\nexport const nameRegex = /\\{([\\w-]+)}/;\n\nconst parser = StreamLanguage.define({\n token: (stream) => {\n if (stream.eatSpace()) {\n return null;\n }\n if (stream.match(/^#.*/)) {\n return 'lineComment';\n }\n if (stream.match(/^-+$/)) {\n return 'lineComment';\n }\n if (stream.match(nameRegex)) {\n return 'variableName';\n }\n stream.next();\n return null;\n },\n});\n\n/**\n * https://codemirror.net/examples/styling\n * https://lezer.codemirror.net/docs/ref/#highlight\n */\nconst highlightStyles = HighlightStyle.define([\n {\n tag: tags.variableName,\n class: mx('rounded border border-yellow-500 bg-yellow-100 text-black font-mono text-sm'),\n },\n]);\n\nexport const promptExtension: Extension = [parser, syntaxHighlighting(highlightStyles)];\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Filter, type Space } from '@dxos/client/echo';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { Icon, Input, List, ListItem } from '@dxos/react-ui';\n\nimport { useServiceRegistry } from '../../hooks';\nimport { ServiceType } from '../../types';\n\n// TODO(burdon): Option to show all/enabled.\nexport const ServiceRegistry = ({ space }: { space: Space }) => {\n const matchingServices = useServiceRegistry(space);\n const enabledServices = useQuery(space, Filter.schema(ServiceType));\n\n // Join matching services with enabled services.\n const services = useMemo(() => {\n return matchingServices.map((service) => enabledServices.find((s) => s.serviceId === service.serviceId) ?? service);\n }, [matchingServices, enabledServices]);\n\n const handleSetEnabled = (service: ServiceType, enabled: boolean) => {\n if (enabled) {\n space.db.add(service);\n } else {\n // TODO(burdon): Remove or disable?\n space.db.remove(service);\n }\n };\n\n return (\n <List classNames='h-full grid auto-rows-[5rem] gap-2 p-2 pis-2 pie-3 overflow-y-auto scrollbar-thin'>\n {services.map((service) => (\n <ServiceItem\n key={service.serviceId}\n service={service}\n enabled={service.enabled}\n setEnabled={(enabled) => handleSetEnabled(service, enabled)}\n />\n ))}\n </List>\n );\n};\n\nconst ServiceItem = ({\n service,\n enabled,\n setEnabled,\n}: {\n service: ServiceType;\n enabled?: boolean;\n setEnabled?: (enabled: boolean) => void;\n}) => {\n return (\n <ListItem.Root classNames='flex flex-col gap-1 p-1 overflow-hidden rounded-md border border-separator'>\n <div className='grid grid-cols-[40px_1fr_40px]'>\n <div className='flex gow justify-center items-center'>\n <Icon icon='ph--placeholder--regular' size={6} />\n </div>\n <div className='grow items-center truncate mie-2'>{service.name}</div>\n <div className='flex gow justify-center items-center'>\n <Input.Root>\n <Input.Switch checked={enabled} onClick={() => setEnabled?.(!enabled)} />\n </Input.Root>\n </div>\n </div>\n <div className='grid grid-cols-[40px_1fr]'>\n <div />\n <div className='text-sm text-subdued line-clamp-2'>{service.description}</div>\n </div>\n </ListItem.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './AutomationPanel';\nexport * from './ChatContainer';\nexport * from './MarkdownViewer';\nexport * from './PromptEditor';\nexport * from './ServiceRegistry';\nexport * from './Thread';\nexport * from './TriggerEditor';\n\nexport const AutomationPanel = lazy(() => import('./AutomationPanel'));\nexport const ChatContainer = lazy(() => import('./ChatContainer'));\n"],
|
|
5
|
-
"mappings": "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
|
|
6
|
-
"names": ["import_react_ui_editor", "import_react_ui_theme", "import_react", "import_echo", "import_react_ui", "nameRegex", "parser", "StreamLanguage", "define", "token", "stream", "eatSpace", "match", "next", "highlightStyles", "HighlightStyle", "tag", "tags", "variableName", "class", "mx", "promptExtension", "syntaxHighlighting", "inputTypes", "value", "ChainInputType", "VALUE", "label", "PASS_THROUGH", "RETRIEVER", "RESOLVER", "CONTEXT", "SCHEMA", "getInputType", "type", "find", "String", "usePromptInputs", "prompt", "useEffect", "text", "template", "inputs", "regex", "RegExp", "variables", "Set", "matchAll", "map", "m", "unclaimed", "Map", "filter", "nonNullable", "input", "name", "missing", "Array", "from", "values", "forEach", "has", "delete", "push", "splice", "indexOf", "PromptEditor", "commandEditable", "t", "useTranslation", "AUTOMATION_PLUGIN", "themeMode", "useThemeContext", "parentRef", "useTextEditor", "initialValue", "extensions", "createDataExtensions", "id", "undefined", "createDocAccessor", "createBasicExtensions", "bracketMatching", "lineWrapping", "placeholder", "createThemeExtensions", "slots", "content", "className", "React", "div", "groupBorder", "span", "Input", "Root", "TextInput", "classNames", "command", "onChange", "event", "target", "replace", "ref", "attentionSurface", "length", "table", "tbody", "tr", "key", "td", "code", "Select", "onValueChange", "TriggerButton", "Portal", "Content", "Viewport", "Option", "includes", "ServiceRegistry", "space", "matchingServices", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Schema as S } from '@effect/schema';\nimport React, { useEffect } from 'react';\n\nimport { createDocAccessor } from '@dxos/react-client/echo';\nimport { Input, Select, useThemeContext, useTranslation } from '@dxos/react-ui';\nimport {\n createBasicExtensions,\n createDataExtensions,\n createThemeExtensions,\n useTextEditor,\n} from '@dxos/react-ui-editor';\nimport { attentionSurface, groupBorder, mx } from '@dxos/react-ui-theme';\nimport { nonNullable } from '@dxos/util';\n\nimport { nameRegex, promptExtension } from './prompt-extension';\nimport { AUTOMATION_PLUGIN } from '../../meta';\nimport { type ChainInput, ChainInputType, type ChainPromptType } from '../../types';\n\nconst inputTypes = [\n {\n value: ChainInputType.VALUE,\n label: 'Value',\n },\n {\n value: ChainInputType.PASS_THROUGH,\n label: 'Pass through',\n },\n {\n value: ChainInputType.RETRIEVER,\n label: 'Retriever',\n },\n // {\n // value: ChainInputType.FUNCTION,\n // label: 'Function',\n // },\n // {\n // value: ChainInputType.QUERY,\n // label: 'Query',\n // },\n {\n value: ChainInputType.RESOLVER,\n label: 'Resolver',\n },\n {\n value: ChainInputType.CONTEXT,\n label: 'Context',\n },\n {\n value: ChainInputType.SCHEMA,\n label: 'Schema',\n },\n];\n\nconst getInputType = (type: string) => inputTypes.find(({ value }) => String(value) === type)?.value;\n\nconst usePromptInputs = (prompt: ChainPromptType) => {\n useEffect(() => {\n const text = prompt.template ?? '';\n if (!prompt.inputs) {\n prompt.inputs = []; // TODO(burdon): Required?\n }\n\n const regex = new RegExp(nameRegex, 'g');\n const variables = new Set<string>([...text.matchAll(regex)].map((m) => m[1]));\n\n // Create map of unclaimed inputs.\n const unclaimed = new Map<string, ChainInput>(\n prompt.inputs?.filter(nonNullable).map((input) => [input.name, input]),\n );\n const missing: string[] = [];\n Array.from(variables.values()).forEach((name) => {\n if (unclaimed.has(name)) {\n unclaimed.delete(name);\n } else {\n missing.push(name);\n }\n });\n\n // Match or create new inputs.\n const values = unclaimed.values();\n missing.forEach((name) => {\n const next = values.next().value;\n if (next) {\n next.name = name;\n } else {\n prompt.inputs?.push({ name });\n }\n });\n\n // Remove unclaimed (deleted) inputs.\n // TODO(burdon): If user types incorrect name value, it will be deleted. Garbage collect?\n for (const input of values) {\n prompt.inputs.splice(prompt.inputs.indexOf(input), 1);\n }\n }, [prompt.template]);\n};\n\nexport type PromptEditorProps = {\n prompt: ChainPromptType;\n commandEditable?: boolean;\n schema?: S.Schema<any, any, any>;\n};\n\nexport const PromptEditor = ({ prompt, commandEditable = true }: PromptEditorProps) => {\n const { t } = useTranslation(AUTOMATION_PLUGIN);\n const { themeMode } = useThemeContext();\n\n const { parentRef } = useTextEditor(\n () => ({\n initialValue: prompt.template,\n extensions: [\n createDataExtensions({\n id: prompt.id,\n text: prompt.template !== undefined ? createDocAccessor(prompt, ['template']) : undefined,\n }),\n createBasicExtensions({\n bracketMatching: false,\n lineWrapping: true,\n placeholder: t('template placeholder'),\n }),\n createThemeExtensions({\n themeMode,\n slots: {\n content: { className: '!p-3' },\n },\n }),\n promptExtension,\n ],\n }),\n [themeMode, prompt],\n );\n\n usePromptInputs(prompt);\n\n return (\n <div className={mx('flex flex-col w-full overflow-hidden gap-4', groupBorder)}>\n {commandEditable && (\n <div className='flex items-center pl-4'>\n <span className='text-neutral-500'>/</span>\n <Input.Root>\n <Input.TextInput\n placeholder={t('command placeholder')}\n classNames={mx('is-full bg-transparent m-2')}\n value={prompt.command ?? ''}\n onChange={(event) => {\n prompt.command = event.target.value.replace(/\\w/g, '');\n }}\n />\n </Input.Root>\n </div>\n )}\n\n <div ref={parentRef} className={mx(attentionSurface, 'rounded', 'min-h-[120px]')} />\n\n {(prompt.inputs?.length ?? 0) > 0 && (\n <div className='flex flex-col'>\n {/* TODO(zan): Improve layout with grid */}\n <table className='w-full table-fixed border-collapse my-2'>\n <tbody>\n {prompt.inputs?.filter(nonNullable).map((input) => (\n <tr key={input.name}>\n <td className='w-[160px] p-1 font-mono text-sm whitespace-nowrap truncate'>\n <code className='px-2'>{input.name}</code>\n </td>\n <td className='w-[120px] p-1'>\n <Input.Root>\n <Select.Root\n value={String(input.type)}\n onValueChange={(type) => {\n input.type = getInputType(type) ?? ChainInputType.VALUE;\n }}\n >\n <Select.TriggerButton placeholder='Type' classNames='is-full' />\n <Select.Portal>\n <Select.Content>\n <Select.Viewport>\n {inputTypes.map(({ value, label }) => (\n <Select.Option key={value} value={String(value)}>\n {label}\n </Select.Option>\n ))}\n </Select.Viewport>\n </Select.Content>\n </Select.Portal>\n </Select.Root>\n </Input.Root>\n </td>\n <td className='p-1 pr-2'>\n {input.type !== undefined &&\n [\n ChainInputType.VALUE,\n ChainInputType.CONTEXT,\n ChainInputType.RESOLVER,\n ChainInputType.SCHEMA,\n ].includes(input.type) && (\n <div>\n <Input.Root>\n <Input.TextInput\n placeholder={t('command placeholder')}\n classNames={mx('is-full bg-transparent')}\n value={input.value ?? ''}\n onChange={(event) => {\n input.value = event.target.value;\n }}\n />\n </Input.Root>\n </div>\n )}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n )}\n </div>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { HighlightStyle, StreamLanguage, syntaxHighlighting } from '@codemirror/language';\nimport { type Extension } from '@codemirror/state';\n\nimport { tags } from '@dxos/react-ui-editor';\nimport { mx } from '@dxos/react-ui-theme';\n\nexport const nameRegex = /\\{([\\w-]+)}/;\n\nconst parser = StreamLanguage.define({\n token: (stream) => {\n if (stream.eatSpace()) {\n return null;\n }\n if (stream.match(/^#.*/)) {\n return 'lineComment';\n }\n if (stream.match(/^-+$/)) {\n return 'lineComment';\n }\n if (stream.match(nameRegex)) {\n return 'variableName';\n }\n stream.next();\n return null;\n },\n});\n\n/**\n * https://codemirror.net/examples/styling\n * https://lezer.codemirror.net/docs/ref/#highlight\n */\nconst highlightStyles = HighlightStyle.define([\n {\n tag: tags.variableName,\n class: mx('rounded border border-yellow-500 bg-yellow-100 text-black font-mono text-sm'),\n },\n]);\n\nexport const promptExtension: Extension = [parser, syntaxHighlighting(highlightStyles)];\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { Filter, type Space } from '@dxos/client/echo';\nimport { useQuery } from '@dxos/react-client/echo';\nimport { Icon, Input, List, ListItem } from '@dxos/react-ui';\n\nimport { useServices } from '../../hooks';\nimport { categoryIcons, ServiceType } from '../../types';\n\n// TODO(burdon): Option to show all/enabled/filter.\nexport const ServiceRegistry = ({ space }: { space: Space }) => {\n const matchingServices = useServices(space);\n const enabledServices = useQuery(space, Filter.schema(ServiceType));\n\n // Join matching services with enabled services.\n const services = useMemo(() => {\n return matchingServices.map((service) => enabledServices.find((s) => s.serviceId === service.serviceId) ?? service);\n }, [matchingServices, enabledServices]);\n\n const handleSetEnabled = (service: ServiceType, enabled: boolean) => {\n if (enabled) {\n space.db.add(service);\n } else {\n // TODO(burdon): Remove or disable?\n space.db.remove(service);\n }\n };\n\n return (\n <List classNames='h-full grid auto-rows-[5rem] gap-2 p-2 pis-2 pie-2 overflow-y-auto scrollbar-thin'>\n {services.map((service) => (\n <ServiceItem\n key={service.serviceId}\n service={service}\n enabled={service.enabled}\n setEnabled={(enabled) => handleSetEnabled(service, enabled)}\n />\n ))}\n </List>\n );\n};\n\nconst ServiceItem = ({\n service,\n enabled,\n setEnabled,\n}: {\n service: ServiceType;\n enabled?: boolean;\n setEnabled?: (enabled: boolean) => void;\n}) => {\n return (\n <ListItem.Root classNames='flex flex-col gap-1 p-1 overflow-hidden rounded-md border border-separator'>\n <div className='grid grid-cols-[40px_1fr_40px]'>\n <div className='flex gow justify-center items-center'>\n <Icon icon={categoryIcons[service.category ?? 'default'] ?? 'ph--placeholder--regular'} size={6} />\n </div>\n <div className='grow items-center truncate mie-2'>{service.name}</div>\n <div className='flex gow justify-center items-center'>\n <Input.Root>\n <Input.Switch checked={enabled} onClick={() => setEnabled?.(!enabled)} />\n </Input.Root>\n </div>\n </div>\n <div className='grid grid-cols-[40px_1fr]'>\n <div />\n <div className='text-sm text-subdued line-clamp-2 mie-1'>{service.description}</div>\n </div>\n </ListItem.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { lazy } from 'react';\n\nexport * from './AutomationPanel';\nexport * from './ChatContainer';\nexport * from './MarkdownViewer';\nexport * from './PromptEditor';\nexport * from './ServiceRegistry';\nexport * from './Thread';\nexport * from './TriggerEditor';\n\nexport const AutomationPanel = lazy(() => import('./AutomationPanel'));\nexport const ChatContainer = lazy(() => import('./ChatContainer'));\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["import_react_ui_editor", "import_react_ui_theme", "import_react", "import_echo", "import_react_ui", "nameRegex", "parser", "StreamLanguage", "define", "token", "stream", "eatSpace", "match", "next", "highlightStyles", "HighlightStyle", "tag", "tags", "variableName", "class", "mx", "promptExtension", "syntaxHighlighting", "inputTypes", "value", "ChainInputType", "VALUE", "label", "PASS_THROUGH", "RETRIEVER", "RESOLVER", "CONTEXT", "SCHEMA", "getInputType", "type", "find", "String", "usePromptInputs", "prompt", "useEffect", "text", "template", "inputs", "regex", "RegExp", "variables", "Set", "matchAll", "map", "m", "unclaimed", "Map", "filter", "nonNullable", "input", "name", "missing", "Array", "from", "values", "forEach", "has", "delete", "push", "splice", "indexOf", "PromptEditor", "commandEditable", "t", "useTranslation", "AUTOMATION_PLUGIN", "themeMode", "useThemeContext", "parentRef", "useTextEditor", "initialValue", "extensions", "createDataExtensions", "id", "undefined", "createDocAccessor", "createBasicExtensions", "bracketMatching", "lineWrapping", "placeholder", "createThemeExtensions", "slots", "content", "className", "React", "div", "groupBorder", "span", "Input", "Root", "TextInput", "classNames", "command", "onChange", "event", "target", "replace", "ref", "attentionSurface", "length", "table", "tbody", "tr", "key", "td", "code", "Select", "onValueChange", "TriggerButton", "Portal", "Content", "Viewport", "Option", "includes", "ServiceRegistry", "space", "matchingServices", "useServices", "enabledServices", "useQuery", "Filter", "schema", "ServiceType", "services", "useMemo", "service", "s", "serviceId", "handleSetEnabled", "enabled", "db", "add", "remove", "List", "ServiceItem", "setEnabled", "ListItem", "Icon", "icon", "categoryIcons", "category", "size", "Switch", "checked", "onClick", "description", "AutomationPanel", "lazy", "ChatContainer"]
|
|
7
7
|
}
|