@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
|
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
|
|
|
26
26
|
mod
|
|
27
27
|
));
|
|
28
28
|
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
-
var
|
|
30
|
-
__export(
|
|
29
|
+
var chunk_NH7STAX6_exports = {};
|
|
30
|
+
__export(chunk_NH7STAX6_exports, {
|
|
31
31
|
AiClient: () => AiClient,
|
|
32
32
|
AppGraphBuilder: () => AppGraphBuilder,
|
|
33
33
|
ChatContainer: () => ChatContainer,
|
|
@@ -36,88 +36,91 @@ __export(chunk_6VMSH4P6_exports, {
|
|
|
36
36
|
MarkdownViewer: () => MarkdownViewer,
|
|
37
37
|
ReactSurface: () => ReactSurface,
|
|
38
38
|
Thread: () => Thread,
|
|
39
|
-
|
|
39
|
+
useServices: () => useServices
|
|
40
40
|
});
|
|
41
|
-
module.exports = __toCommonJS(
|
|
42
|
-
var
|
|
43
|
-
var
|
|
44
|
-
var
|
|
41
|
+
module.exports = __toCommonJS(chunk_NH7STAX6_exports);
|
|
42
|
+
var import_chunk_AWZVJZ2I = require("./chunk-AWZVJZ2I.cjs");
|
|
43
|
+
var import_chunk_H3RSMGJG = require("./chunk-H3RSMGJG.cjs");
|
|
44
|
+
var import_chunk_TQEDPRY5 = require("./chunk-TQEDPRY5.cjs");
|
|
45
45
|
var import_react = __toESM(require("react"));
|
|
46
|
-
var import_app_framework = require("@dxos/app-framework");
|
|
47
|
-
var import_artifact = require("@dxos/artifact");
|
|
48
|
-
var import_functions = require("@dxos/functions");
|
|
49
46
|
var import_invariant = require("@dxos/invariant");
|
|
50
|
-
var import_keys = require("@dxos/keys");
|
|
51
|
-
var import_react_client = require("@dxos/react-client");
|
|
52
|
-
var import_echo = require("@dxos/react-client/echo");
|
|
53
|
-
var import_react_edge_client = require("@dxos/react-edge-client");
|
|
54
47
|
var import_react_ui_stack = require("@dxos/react-ui-stack");
|
|
55
|
-
var import_util = require("@dxos/util");
|
|
56
|
-
var import_app_framework2 = require("@dxos/app-framework");
|
|
57
48
|
var import_signals_core = require("@preact/signals-core");
|
|
58
|
-
var
|
|
49
|
+
var import_artifact = require("@dxos/artifact");
|
|
59
50
|
var import_assistant = require("@dxos/assistant");
|
|
60
51
|
var import_echo_schema = require("@dxos/echo-schema");
|
|
61
52
|
var import_invariant2 = require("@dxos/invariant");
|
|
62
53
|
var import_log = require("@dxos/log");
|
|
63
54
|
var import_react2 = require("react");
|
|
55
|
+
var import_app_framework = require("@dxos/app-framework");
|
|
56
|
+
var import_artifact2 = require("@dxos/artifact");
|
|
57
|
+
var import_functions = require("@dxos/functions");
|
|
58
|
+
var import_react_client = require("@dxos/react-client");
|
|
59
|
+
var import_echo = require("@dxos/react-client/echo");
|
|
60
|
+
var import_util = require("@dxos/util");
|
|
61
|
+
var import_app_framework2 = require("@dxos/app-framework");
|
|
62
|
+
var import_artifact3 = require("@dxos/artifact");
|
|
63
|
+
var import_echo_schema2 = require("@dxos/echo-schema");
|
|
64
|
+
var import_functions2 = require("@dxos/functions");
|
|
65
|
+
var import_log2 = require("@dxos/log");
|
|
66
|
+
var import_echo2 = require("@dxos/react-client/echo");
|
|
67
|
+
var import_jsonpointer = __toESM(require("jsonpointer"));
|
|
68
|
+
var import_artifact4 = require("@dxos/artifact");
|
|
69
|
+
var import_echo_schema3 = require("@dxos/echo-schema");
|
|
70
|
+
var import_invariant3 = require("@dxos/invariant");
|
|
71
|
+
var import_log3 = require("@dxos/log");
|
|
72
|
+
var import_util2 = require("@dxos/util");
|
|
64
73
|
var import_react3 = require("react");
|
|
65
74
|
var import_async = require("@dxos/async");
|
|
66
75
|
var import_context = require("@dxos/context");
|
|
67
|
-
var import_functions2 = require("@dxos/functions");
|
|
68
76
|
var import_functions3 = require("@dxos/functions");
|
|
69
|
-
var import_invariant3 = require("@dxos/invariant");
|
|
70
|
-
var import_log2 = require("@dxos/log");
|
|
71
|
-
var import_react_client2 = require("@dxos/react-client");
|
|
72
|
-
var import_echo2 = require("@dxos/react-client/echo");
|
|
73
|
-
var import_async2 = require("@dxos/async");
|
|
74
|
-
var import_echo_db = require("@dxos/echo-db");
|
|
75
77
|
var import_functions4 = require("@dxos/functions");
|
|
76
78
|
var import_invariant4 = require("@dxos/invariant");
|
|
77
|
-
var import_keys2 = require("@dxos/keys");
|
|
78
|
-
var import_log3 = require("@dxos/log");
|
|
79
|
-
var import_artifact3 = require("@dxos/artifact");
|
|
80
|
-
var import_echo_schema2 = require("@dxos/echo-schema");
|
|
81
|
-
var import_functions5 = require("@dxos/functions");
|
|
82
79
|
var import_log4 = require("@dxos/log");
|
|
80
|
+
var import_react_client2 = require("@dxos/react-client");
|
|
83
81
|
var import_echo3 = require("@dxos/react-client/echo");
|
|
84
|
-
var
|
|
85
|
-
var
|
|
86
|
-
var
|
|
82
|
+
var import_async2 = require("@dxos/async");
|
|
83
|
+
var import_echo_db = require("@dxos/echo-db");
|
|
84
|
+
var import_functions5 = require("@dxos/functions");
|
|
87
85
|
var import_invariant5 = require("@dxos/invariant");
|
|
86
|
+
var import_keys = require("@dxos/keys");
|
|
88
87
|
var import_log5 = require("@dxos/log");
|
|
89
|
-
var
|
|
90
|
-
var
|
|
88
|
+
var import_react4 = require("react");
|
|
89
|
+
var import_keys2 = require("@dxos/keys");
|
|
90
|
+
var import_echo4 = require("@dxos/react-client/echo");
|
|
91
|
+
var import_react_edge_client = require("@dxos/react-edge-client");
|
|
92
|
+
var import_react5 = require("react");
|
|
93
|
+
var import_artifact5 = require("@dxos/artifact");
|
|
94
|
+
var import_echo_schema4 = require("@dxos/echo-schema");
|
|
95
|
+
var import_echo_schema5 = require("@dxos/echo-schema");
|
|
96
|
+
var import_react6 = __toESM(require("react"));
|
|
91
97
|
var import_react_ui = require("@dxos/react-ui");
|
|
92
98
|
var import_react_ui_sfx = require("@dxos/react-ui-sfx");
|
|
93
99
|
var import_react_ui_theme = require("@dxos/react-ui-theme");
|
|
94
|
-
var
|
|
100
|
+
var import_react7 = __toESM(require("react"));
|
|
95
101
|
var import_invariant6 = require("@dxos/invariant");
|
|
96
102
|
var import_react_ui_theme2 = require("@dxos/react-ui-theme");
|
|
97
|
-
var
|
|
103
|
+
var import_react8 = __toESM(require("react"));
|
|
98
104
|
var import_invariant7 = require("@dxos/invariant");
|
|
105
|
+
var import_log6 = require("@dxos/log");
|
|
99
106
|
var import_react_ui2 = require("@dxos/react-ui");
|
|
100
107
|
var import_react_ui_syntax_highlighter = require("@dxos/react-ui-syntax-highlighter");
|
|
101
108
|
var import_react_ui_theme3 = require("@dxos/react-ui-theme");
|
|
102
109
|
var import_util3 = require("@dxos/util");
|
|
103
|
-
var
|
|
110
|
+
var import_react9 = __toESM(require("react"));
|
|
104
111
|
var import_react_ui_theme4 = require("@dxos/react-ui-theme");
|
|
105
|
-
var
|
|
112
|
+
var import_react10 = __toESM(require("react"));
|
|
106
113
|
var import_react_ui3 = require("@dxos/react-ui");
|
|
107
114
|
var import_react_ui_theme5 = require("@dxos/react-ui-theme");
|
|
108
|
-
var
|
|
115
|
+
var import_react11 = __toESM(require("react"));
|
|
109
116
|
var import_react_markdown = __toESM(require("react-markdown"));
|
|
110
117
|
var import_react_ui_syntax_highlighter2 = require("@dxos/react-ui-syntax-highlighter");
|
|
111
118
|
var import_react_ui_theme6 = require("@dxos/react-ui-theme");
|
|
112
119
|
var import_util4 = require("@dxos/util");
|
|
113
|
-
var AiClient = (0, import_app_framework2.lazy)(() => import("./ai-client-SA35GN5Q.cjs"));
|
|
114
|
-
var AppGraphBuilder = (0, import_app_framework2.lazy)(() => import("./app-graph-builder-ENVDOPS4.cjs"));
|
|
115
|
-
var IntentResolver = (0, import_app_framework2.lazy)(() => import("./intent-resolver-CNVBSG4E.cjs"));
|
|
116
|
-
var ReactSurface = (0, import_app_framework2.lazy)(() => import("./react-surface-5HYLBDC3.cjs"));
|
|
117
120
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-automation/src/hooks/processor.ts";
|
|
118
121
|
var defaultOptions = {
|
|
119
122
|
model: "@anthropic/claude-3-5-sonnet-20241022",
|
|
120
|
-
systemPrompt: ""
|
|
123
|
+
systemPrompt: "you are a helpful assistant"
|
|
121
124
|
};
|
|
122
125
|
var ChatProcessor = class {
|
|
123
126
|
constructor(_client, _tools, _extensions, _options = defaultOptions) {
|
|
@@ -138,7 +141,7 @@ var ChatProcessor = class {
|
|
|
138
141
|
const current = messages.pop();
|
|
139
142
|
(0, import_invariant2.invariant)(current, void 0, {
|
|
140
143
|
F: __dxlog_file,
|
|
141
|
-
L:
|
|
144
|
+
L: 78,
|
|
142
145
|
S: this,
|
|
143
146
|
A: [
|
|
144
147
|
"current",
|
|
@@ -173,13 +176,19 @@ var ChatProcessor = class {
|
|
|
173
176
|
});
|
|
174
177
|
}
|
|
175
178
|
/**
|
|
179
|
+
* Update tools.
|
|
180
|
+
*/
|
|
181
|
+
setTools(tools) {
|
|
182
|
+
this._tools = tools;
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
176
185
|
* Make GPT request.
|
|
177
186
|
*/
|
|
178
187
|
async request(message, options = {}) {
|
|
179
188
|
(0, import_signals_core.batch)(() => {
|
|
180
189
|
this._history = options.history ?? [];
|
|
181
190
|
this._pending.value = [
|
|
182
|
-
(0, import_echo_schema.createStatic)(
|
|
191
|
+
(0, import_echo_schema.createStatic)(import_artifact.Message, {
|
|
183
192
|
role: "user",
|
|
184
193
|
content: [
|
|
185
194
|
{
|
|
@@ -202,7 +211,7 @@ var ChatProcessor = class {
|
|
|
202
211
|
async cancel() {
|
|
203
212
|
import_log.log.info("cancelling...", void 0, {
|
|
204
213
|
F: __dxlog_file,
|
|
205
|
-
L:
|
|
214
|
+
L: 141,
|
|
206
215
|
S: this,
|
|
207
216
|
C: (f, a) => f(...a)
|
|
208
217
|
});
|
|
@@ -231,7 +240,7 @@ var ChatProcessor = class {
|
|
|
231
240
|
messages: this._pending.value.length
|
|
232
241
|
}, {
|
|
233
242
|
F: __dxlog_file,
|
|
234
|
-
L:
|
|
243
|
+
L: 165,
|
|
235
244
|
S: this,
|
|
236
245
|
C: (f, a) => f(...a)
|
|
237
246
|
});
|
|
@@ -250,7 +259,7 @@ var ChatProcessor = class {
|
|
|
250
259
|
messages: this._pending.value
|
|
251
260
|
}, {
|
|
252
261
|
F: __dxlog_file,
|
|
253
|
-
L:
|
|
262
|
+
L: 178,
|
|
254
263
|
S: this,
|
|
255
264
|
C: (f, a) => f(...a)
|
|
256
265
|
});
|
|
@@ -258,7 +267,7 @@ var ChatProcessor = class {
|
|
|
258
267
|
const message = this._pending.value.at(-1);
|
|
259
268
|
(0, import_invariant2.invariant)(message, void 0, {
|
|
260
269
|
F: __dxlog_file,
|
|
261
|
-
L:
|
|
270
|
+
L: 183,
|
|
262
271
|
S: this,
|
|
263
272
|
A: [
|
|
264
273
|
"message",
|
|
@@ -268,7 +277,7 @@ var ChatProcessor = class {
|
|
|
268
277
|
if ((0, import_assistant.isToolUse)(message)) {
|
|
269
278
|
import_log.log.info("tool request...", void 0, {
|
|
270
279
|
F: __dxlog_file,
|
|
271
|
-
L:
|
|
280
|
+
L: 185,
|
|
272
281
|
S: this,
|
|
273
282
|
C: (f, a) => f(...a)
|
|
274
283
|
});
|
|
@@ -281,7 +290,7 @@ var ChatProcessor = class {
|
|
|
281
290
|
response
|
|
282
291
|
}, {
|
|
283
292
|
F: __dxlog_file,
|
|
284
|
-
L:
|
|
293
|
+
L: 192,
|
|
285
294
|
S: this,
|
|
286
295
|
C: (f, a) => f(...a)
|
|
287
296
|
});
|
|
@@ -302,14 +311,14 @@ var ChatProcessor = class {
|
|
|
302
311
|
err
|
|
303
312
|
}, {
|
|
304
313
|
F: __dxlog_file,
|
|
305
|
-
L:
|
|
314
|
+
L: 204,
|
|
306
315
|
S: this,
|
|
307
316
|
C: (f, a) => f(...a)
|
|
308
317
|
});
|
|
309
318
|
} finally {
|
|
310
319
|
import_log.log.info("done", void 0, {
|
|
311
320
|
F: __dxlog_file,
|
|
312
|
-
L:
|
|
321
|
+
L: 206,
|
|
313
322
|
S: this,
|
|
314
323
|
C: (f, a) => f(...a)
|
|
315
324
|
});
|
|
@@ -317,32 +326,20 @@ var ChatProcessor = class {
|
|
|
317
326
|
}
|
|
318
327
|
}
|
|
319
328
|
};
|
|
320
|
-
var
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
const t = setTimeout(async () => {
|
|
325
|
-
const services2 = await registry.queryServices(query);
|
|
326
|
-
setServices(services2);
|
|
327
|
-
});
|
|
328
|
-
return () => clearTimeout(t);
|
|
329
|
-
}, [
|
|
330
|
-
query,
|
|
331
|
-
registry
|
|
332
|
-
]);
|
|
333
|
-
return services;
|
|
334
|
-
};
|
|
335
|
-
var registerTriggersMutex = new import_async.Mutex();
|
|
329
|
+
var AiClient = (0, import_app_framework2.lazy)(() => import("./ai-client-AOB6TLNW.cjs"));
|
|
330
|
+
var AppGraphBuilder = (0, import_app_framework2.lazy)(() => import("./app-graph-builder-CDEQJEHY.cjs"));
|
|
331
|
+
var IntentResolver = (0, import_app_framework2.lazy)(() => import("./intent-resolver-MJFZT5IU.cjs"));
|
|
332
|
+
var ReactSurface = (0, import_app_framework2.lazy)(() => import("./react-surface-HDAVE6NU.cjs"));
|
|
336
333
|
var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-automation/src/tools/function.ts";
|
|
337
334
|
var covertFunctionToTool = (fn, edgeUrl, spaceId) => {
|
|
338
335
|
if (!fn.description || !fn.inputSchema) {
|
|
339
336
|
return void 0;
|
|
340
337
|
}
|
|
341
|
-
const existingFunctionUrl = (0,
|
|
338
|
+
const existingFunctionUrl = (0, import_functions2.getUserFunctionUrlInMetadata)((0, import_echo2.getMeta)(fn));
|
|
342
339
|
if (!existingFunctionUrl) {
|
|
343
340
|
return void 0;
|
|
344
341
|
}
|
|
345
|
-
const url = (0,
|
|
342
|
+
const url = (0, import_functions2.getInvocationUrl)(existingFunctionUrl, edgeUrl, {
|
|
346
343
|
spaceId
|
|
347
344
|
});
|
|
348
345
|
return (0, import_artifact3.defineTool)({
|
|
@@ -350,7 +347,7 @@ var covertFunctionToTool = (fn, edgeUrl, spaceId) => {
|
|
|
350
347
|
description: fn.description,
|
|
351
348
|
schema: (0, import_echo_schema2.toEffectSchema)(fn.inputSchema),
|
|
352
349
|
execute: async (input) => {
|
|
353
|
-
|
|
350
|
+
import_log2.log.info("execute function tool", {
|
|
354
351
|
name: fn.name,
|
|
355
352
|
url,
|
|
356
353
|
input
|
|
@@ -373,7 +370,7 @@ var covertFunctionToTool = (fn, edgeUrl, spaceId) => {
|
|
|
373
370
|
};
|
|
374
371
|
var __dxlog_file3 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-automation/src/tools/openapi.ts";
|
|
375
372
|
var createToolsFromService = async (service) => {
|
|
376
|
-
(0,
|
|
373
|
+
(0, import_invariant3.invariant)(service.interfaces?.length === 1 && service.interfaces[0].kind === "api", void 0, {
|
|
377
374
|
F: __dxlog_file3,
|
|
378
375
|
L: 22,
|
|
379
376
|
S: void 0,
|
|
@@ -383,7 +380,7 @@ var createToolsFromService = async (service) => {
|
|
|
383
380
|
]
|
|
384
381
|
});
|
|
385
382
|
const iface = service.interfaces[0];
|
|
386
|
-
(0,
|
|
383
|
+
(0, import_invariant3.invariant)(iface.schemaUrl, void 0, {
|
|
387
384
|
F: __dxlog_file3,
|
|
388
385
|
L: 24,
|
|
389
386
|
S: void 0,
|
|
@@ -392,7 +389,7 @@ var createToolsFromService = async (service) => {
|
|
|
392
389
|
""
|
|
393
390
|
]
|
|
394
391
|
});
|
|
395
|
-
(0,
|
|
392
|
+
(0, import_invariant3.invariant)(iface.schemaUrl, void 0, {
|
|
396
393
|
F: __dxlog_file3,
|
|
397
394
|
L: 25,
|
|
398
395
|
S: void 0,
|
|
@@ -408,7 +405,7 @@ var createToolsFromService = async (service) => {
|
|
|
408
405
|
var createToolsFromApi = async (url, options) => {
|
|
409
406
|
const res = await fetch(url);
|
|
410
407
|
const spec = await res.json();
|
|
411
|
-
(0,
|
|
408
|
+
(0, import_log3.log)("spec", {
|
|
412
409
|
spec
|
|
413
410
|
}, {
|
|
414
411
|
F: __dxlog_file3,
|
|
@@ -424,7 +421,7 @@ var createToolsFromApi = async (url, options) => {
|
|
|
424
421
|
const { ...methods } = pathItem;
|
|
425
422
|
for (const [method, m] of Object.entries(methods)) {
|
|
426
423
|
const methodItem = m;
|
|
427
|
-
(0,
|
|
424
|
+
(0, import_log3.log)("methodItem", {
|
|
428
425
|
path,
|
|
429
426
|
method,
|
|
430
427
|
methodItem
|
|
@@ -444,7 +441,7 @@ var createToolsFromApi = async (url, options) => {
|
|
|
444
441
|
};
|
|
445
442
|
const endpointParameters = [];
|
|
446
443
|
for (const parameter of parametersResolved) {
|
|
447
|
-
(0,
|
|
444
|
+
(0, import_log3.log)("parameter", {
|
|
448
445
|
parameter
|
|
449
446
|
}, {
|
|
450
447
|
F: __dxlog_file3,
|
|
@@ -467,7 +464,7 @@ var createToolsFromApi = async (url, options) => {
|
|
|
467
464
|
}
|
|
468
465
|
}
|
|
469
466
|
}
|
|
470
|
-
(0,
|
|
467
|
+
(0, import_log3.log)("inputSchema", {
|
|
471
468
|
inputSchema
|
|
472
469
|
}, {
|
|
473
470
|
F: __dxlog_file3,
|
|
@@ -478,7 +475,7 @@ var createToolsFromApi = async (url, options) => {
|
|
|
478
475
|
import_echo_schema3.S.validateSync(import_echo_schema3.JsonSchemaType)(inputSchema);
|
|
479
476
|
const description = methodItem.description ?? methodItem.summary;
|
|
480
477
|
if (!description) {
|
|
481
|
-
|
|
478
|
+
import_log3.log.warn("no description", {
|
|
482
479
|
path,
|
|
483
480
|
method
|
|
484
481
|
}, {
|
|
@@ -553,7 +550,7 @@ var GENERIC_WORDS = [
|
|
|
553
550
|
"endpoint"
|
|
554
551
|
];
|
|
555
552
|
var callApiEndpoint = async (endpoint, input) => {
|
|
556
|
-
|
|
553
|
+
import_log3.log.info("endpoint", {
|
|
557
554
|
method: endpoint.method,
|
|
558
555
|
name: endpoint.path,
|
|
559
556
|
input
|
|
@@ -613,7 +610,7 @@ var callApiEndpoint = async (endpoint, input) => {
|
|
|
613
610
|
request.body = JSON.stringify(body);
|
|
614
611
|
request.headers["Content-Type"] = "application/json";
|
|
615
612
|
}
|
|
616
|
-
|
|
613
|
+
import_log3.log.info("request", {
|
|
617
614
|
url,
|
|
618
615
|
request
|
|
619
616
|
}, {
|
|
@@ -623,7 +620,7 @@ var callApiEndpoint = async (endpoint, input) => {
|
|
|
623
620
|
C: (f, a) => f(...a)
|
|
624
621
|
});
|
|
625
622
|
const response = await fetch(url, request);
|
|
626
|
-
|
|
623
|
+
import_log3.log.info("response", {
|
|
627
624
|
ok: response.ok,
|
|
628
625
|
status: response.status,
|
|
629
626
|
statusText: response.statusText
|
|
@@ -649,7 +646,7 @@ var callApiEndpoint = async (endpoint, input) => {
|
|
|
649
646
|
} catch {
|
|
650
647
|
error = responseBody;
|
|
651
648
|
}
|
|
652
|
-
|
|
649
|
+
import_log3.log.error("error", {
|
|
653
650
|
error
|
|
654
651
|
}, {
|
|
655
652
|
F: __dxlog_file3,
|
|
@@ -660,7 +657,7 @@ var callApiEndpoint = async (endpoint, input) => {
|
|
|
660
657
|
throw new Error(error.message);
|
|
661
658
|
} else {
|
|
662
659
|
const error = await response.text();
|
|
663
|
-
|
|
660
|
+
import_log3.log.error("error", {
|
|
664
661
|
error
|
|
665
662
|
}, {
|
|
666
663
|
F: __dxlog_file3,
|
|
@@ -677,7 +674,7 @@ var getEndpointUrl = (endpoint) => {
|
|
|
677
674
|
if (isV3_1(endpoint.document) && endpoint.document.servers && endpoint.document.servers.length > 0) {
|
|
678
675
|
url = endpoint.document.servers[0].url;
|
|
679
676
|
} else {
|
|
680
|
-
(0,
|
|
677
|
+
(0, import_invariant3.invariant)(!isV3_1(endpoint.document), void 0, {
|
|
681
678
|
F: __dxlog_file3,
|
|
682
679
|
L: 272,
|
|
683
680
|
S: void 0,
|
|
@@ -697,7 +694,7 @@ var getEndpointUrl = (endpoint) => {
|
|
|
697
694
|
var resolveAuthorization = async (authorization) => {
|
|
698
695
|
switch (authorization.type) {
|
|
699
696
|
case "api-key": {
|
|
700
|
-
(0,
|
|
697
|
+
(0, import_invariant3.invariant)(authorization.placement.type === "authorization-header", void 0, {
|
|
701
698
|
F: __dxlog_file3,
|
|
702
699
|
L: 288,
|
|
703
700
|
S: void 0,
|
|
@@ -732,7 +729,7 @@ var resolveJsonSchema = (schema, base) => {
|
|
|
732
729
|
if (resolved) {
|
|
733
730
|
return recurse(resolved);
|
|
734
731
|
} else {
|
|
735
|
-
|
|
732
|
+
import_log3.log.warn("unresolved", {
|
|
736
733
|
ref: value.$ref,
|
|
737
734
|
base
|
|
738
735
|
}, {
|
|
@@ -750,11 +747,204 @@ var resolveJsonSchema = (schema, base) => {
|
|
|
750
747
|
var isV3_1 = (document) => {
|
|
751
748
|
return document.openapi === "3.0.1";
|
|
752
749
|
};
|
|
750
|
+
var useChatProcessor = (chat) => {
|
|
751
|
+
const aiClient = (0, import_app_framework.useCapability)(import_chunk_AWZVJZ2I.AutomationCapabilities.AiClient);
|
|
752
|
+
const globalTools = (0, import_app_framework.useCapabilities)(import_app_framework.Capabilities.Tools);
|
|
753
|
+
const artifactDefinitions = (0, import_app_framework.useCapabilities)(import_app_framework.Capabilities.ArtifactDefinition);
|
|
754
|
+
const { dispatchPromise: dispatch } = (0, import_app_framework.useIntentDispatcher)();
|
|
755
|
+
const space = (0, import_echo.getSpace)(chat);
|
|
756
|
+
const services = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_chunk_H3RSMGJG.ServiceType));
|
|
757
|
+
const [serviceTools, setServiceTools] = (0, import_react2.useState)([]);
|
|
758
|
+
(0, import_react2.useEffect)(() => {
|
|
759
|
+
queueMicrotask(async () => {
|
|
760
|
+
const tools2 = await Promise.all(services.map((service) => createToolsFromService(service)));
|
|
761
|
+
setServiceTools(tools2.flat());
|
|
762
|
+
});
|
|
763
|
+
}, [
|
|
764
|
+
services
|
|
765
|
+
]);
|
|
766
|
+
const config = (0, import_react_client.useConfig)();
|
|
767
|
+
const functions2 = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_functions.FunctionType));
|
|
768
|
+
const tools = (0, import_react2.useMemo)(() => [
|
|
769
|
+
...globalTools.flat(),
|
|
770
|
+
...artifactDefinitions.flatMap((definition) => definition.tools),
|
|
771
|
+
...serviceTools,
|
|
772
|
+
...functions2.map((fn) => covertFunctionToTool(fn, config.values.runtime?.services?.edge?.url ?? "", space?.id)).filter(import_util.isNotNullOrUndefined)
|
|
773
|
+
], [
|
|
774
|
+
globalTools,
|
|
775
|
+
artifactDefinitions,
|
|
776
|
+
serviceTools,
|
|
777
|
+
functions2,
|
|
778
|
+
space?.id
|
|
779
|
+
]);
|
|
780
|
+
const systemPrompt = (0, import_react2.useMemo)(() => (0, import_artifact2.createSystemPrompt)({
|
|
781
|
+
artifacts: artifactDefinitions.map((definition) => definition.instructions)
|
|
782
|
+
}), [
|
|
783
|
+
artifactDefinitions
|
|
784
|
+
]);
|
|
785
|
+
const processor = (0, import_react2.useMemo)(() => new ChatProcessor(aiClient, tools, {
|
|
786
|
+
space,
|
|
787
|
+
dispatch
|
|
788
|
+
}, {
|
|
789
|
+
model: "@anthropic/claude-3-5-sonnet-20241022",
|
|
790
|
+
systemPrompt
|
|
791
|
+
}), [
|
|
792
|
+
aiClient,
|
|
793
|
+
tools,
|
|
794
|
+
space,
|
|
795
|
+
dispatch,
|
|
796
|
+
systemPrompt
|
|
797
|
+
]);
|
|
798
|
+
return processor;
|
|
799
|
+
};
|
|
800
|
+
var registerTriggersMutex = new import_async.Mutex();
|
|
801
|
+
var useMessageQueue = (chat) => {
|
|
802
|
+
const edgeClient = (0, import_react_edge_client.useEdgeClient)();
|
|
803
|
+
const space = (0, import_echo4.getSpace)(chat);
|
|
804
|
+
const queueDxn = (0, import_react4.useMemo)(() => new import_keys2.DXN(import_keys2.DXN.kind.QUEUE, [
|
|
805
|
+
import_keys2.QueueSubspaceTags.DATA,
|
|
806
|
+
space.id,
|
|
807
|
+
chat.queue.dxn.parts.at(-1)
|
|
808
|
+
]), [
|
|
809
|
+
chat.queue.dxn
|
|
810
|
+
]);
|
|
811
|
+
return (0, import_react_edge_client.useQueue)(edgeClient, queueDxn);
|
|
812
|
+
};
|
|
813
|
+
var functions = [
|
|
814
|
+
{
|
|
815
|
+
name: "example.com/function/chess",
|
|
816
|
+
version: "0.1.0",
|
|
817
|
+
inputSchema: (0, import_echo_schema4.toJsonSchema)(import_echo_schema4.S.Struct({
|
|
818
|
+
level: import_echo_schema4.S.Number.annotations({
|
|
819
|
+
[import_echo_schema4.AST.TitleAnnotationId]: "Level"
|
|
820
|
+
})
|
|
821
|
+
}))
|
|
822
|
+
},
|
|
823
|
+
{
|
|
824
|
+
name: "example.com/function/forex",
|
|
825
|
+
version: "0.1.0",
|
|
826
|
+
binding: "FOREX",
|
|
827
|
+
inputSchema: (0, import_echo_schema4.toJsonSchema)(import_echo_schema4.S.Struct({
|
|
828
|
+
from: import_echo_schema4.S.String.annotations({
|
|
829
|
+
[import_echo_schema4.AST.TitleAnnotationId]: "Currency from"
|
|
830
|
+
}),
|
|
831
|
+
to: import_echo_schema4.S.String.annotations({
|
|
832
|
+
[import_echo_schema4.AST.TitleAnnotationId]: "Currency to"
|
|
833
|
+
})
|
|
834
|
+
}))
|
|
835
|
+
}
|
|
836
|
+
];
|
|
837
|
+
var MockServiceRegistry = class {
|
|
838
|
+
async queryServices(query) {
|
|
839
|
+
return TEST_SERVICES;
|
|
840
|
+
}
|
|
841
|
+
};
|
|
842
|
+
var AMADEUS_AUTH = {
|
|
843
|
+
type: "oauth",
|
|
844
|
+
clientId: "BOEnpLd1sMyKjAPGKYeAPFFy60u53QEG",
|
|
845
|
+
clientSecret: "n4qldSN7usvD57gm",
|
|
846
|
+
tokenUrl: "https://test.api.amadeus.com/v1/security/oauth2/token",
|
|
847
|
+
grantType: "client_credentials"
|
|
848
|
+
};
|
|
849
|
+
var VISUAL_CROSSING_CREDENTIALS = {
|
|
850
|
+
type: "api-key",
|
|
851
|
+
key: "FDPRVS953KB4GQQLD25GRT975",
|
|
852
|
+
placement: {
|
|
853
|
+
type: "query",
|
|
854
|
+
name: "key"
|
|
855
|
+
}
|
|
856
|
+
};
|
|
857
|
+
var TEST_SERVICES = [
|
|
858
|
+
(0, import_echo_schema5.createStatic)(import_chunk_H3RSMGJG.ServiceType, {
|
|
859
|
+
serviceId: "amadeus.com/service/FlightSearch",
|
|
860
|
+
name: "Amadeus Flight Search",
|
|
861
|
+
description: "Search for local and international flights.",
|
|
862
|
+
category: "travel",
|
|
863
|
+
interfaces: [
|
|
864
|
+
{
|
|
865
|
+
kind: "api",
|
|
866
|
+
schemaUrl: "https://api.apis.guru/v2/specs/amadeus.com/amadeus-flight-availabilities-search/1.0.2/swagger.json",
|
|
867
|
+
authorization: AMADEUS_AUTH
|
|
868
|
+
}
|
|
869
|
+
]
|
|
870
|
+
}),
|
|
871
|
+
(0, import_echo_schema5.createStatic)(import_chunk_H3RSMGJG.ServiceType, {
|
|
872
|
+
serviceId: "amadeus.com/service/HotelSearch",
|
|
873
|
+
name: "Amadeus Hotel Search",
|
|
874
|
+
description: "Search for local and international hotels.",
|
|
875
|
+
category: "travel",
|
|
876
|
+
interfaces: [
|
|
877
|
+
{
|
|
878
|
+
kind: "api",
|
|
879
|
+
schemaUrl: "https://api.apis.guru/v2/specs/amadeus.com/amadeus-hotel-search/3.0.8/swagger.json",
|
|
880
|
+
authorization: AMADEUS_AUTH
|
|
881
|
+
}
|
|
882
|
+
]
|
|
883
|
+
}),
|
|
884
|
+
(0, import_echo_schema5.createStatic)(import_chunk_H3RSMGJG.ServiceType, {
|
|
885
|
+
serviceId: "visualcrossing.com/service/Weather",
|
|
886
|
+
name: "Visual Crossing Weather",
|
|
887
|
+
description: "Search for global weather forecasts.",
|
|
888
|
+
category: "weather",
|
|
889
|
+
interfaces: [
|
|
890
|
+
{
|
|
891
|
+
kind: "api",
|
|
892
|
+
schemaUrl: "https://api.apis.guru/v2/specs/visualcrossing.com/weather/4.6/openapi.json",
|
|
893
|
+
authorization: VISUAL_CROSSING_CREDENTIALS
|
|
894
|
+
}
|
|
895
|
+
]
|
|
896
|
+
}),
|
|
897
|
+
// TODO(burdon): Needs auth.
|
|
898
|
+
(0, import_echo_schema5.createStatic)(import_chunk_H3RSMGJG.ServiceType, {
|
|
899
|
+
serviceId: "abstractapi.com/service/GeoLocation",
|
|
900
|
+
name: "Abstract GeoLocation",
|
|
901
|
+
description: "Get the location of any IP address.",
|
|
902
|
+
category: "geolocation",
|
|
903
|
+
interfaces: [
|
|
904
|
+
{
|
|
905
|
+
kind: "api",
|
|
906
|
+
schemaUrl: "https://api.apis.guru/v2/specs/abstractapi.com/geolocation/1.0.0/openapi.json"
|
|
907
|
+
}
|
|
908
|
+
]
|
|
909
|
+
}),
|
|
910
|
+
//
|
|
911
|
+
// Testing
|
|
912
|
+
//
|
|
913
|
+
...Array.from({
|
|
914
|
+
length: 20
|
|
915
|
+
}, (_, i) => (0, import_echo_schema5.createStatic)(import_chunk_H3RSMGJG.ServiceType, {
|
|
916
|
+
serviceId: `example.com/service/test-${i}`,
|
|
917
|
+
name: `Test ${i}`,
|
|
918
|
+
description: `Test ${i}`,
|
|
919
|
+
category: Object.keys(import_chunk_H3RSMGJG.categoryIcons)[Math.floor(Math.random() * Object.keys(import_chunk_H3RSMGJG.categoryIcons).length)],
|
|
920
|
+
interfaces: [
|
|
921
|
+
{
|
|
922
|
+
kind: "api",
|
|
923
|
+
schemaUrl: "https://petstore.swagger.io/v2/swagger.json"
|
|
924
|
+
}
|
|
925
|
+
]
|
|
926
|
+
}))
|
|
927
|
+
];
|
|
928
|
+
var useServices = (space, query) => {
|
|
929
|
+
const registry = (0, import_react5.useMemo)(() => new MockServiceRegistry(), []);
|
|
930
|
+
const [services, setServices] = (0, import_react5.useState)([]);
|
|
931
|
+
(0, import_react5.useEffect)(() => {
|
|
932
|
+
const t = setTimeout(async () => {
|
|
933
|
+
const services2 = await registry.queryServices(query);
|
|
934
|
+
setServices(services2);
|
|
935
|
+
});
|
|
936
|
+
return () => clearTimeout(t);
|
|
937
|
+
}, [
|
|
938
|
+
query,
|
|
939
|
+
registry
|
|
940
|
+
]);
|
|
941
|
+
return services;
|
|
942
|
+
};
|
|
753
943
|
var __dxlog_file4 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-automation/src/components/Thread/ScrollContainer.tsx";
|
|
754
|
-
var ScrollContainer = /* @__PURE__ */ (0,
|
|
755
|
-
const containerRef = (0,
|
|
756
|
-
const autoScrollRef = (0,
|
|
757
|
-
(0,
|
|
944
|
+
var ScrollContainer = /* @__PURE__ */ (0, import_react7.forwardRef)(({ children, classNames }, forwardedRef) => {
|
|
945
|
+
const containerRef = (0, import_react7.useRef)(null);
|
|
946
|
+
const autoScrollRef = (0, import_react7.useRef)(false);
|
|
947
|
+
(0, import_react7.useImperativeHandle)(forwardedRef, () => ({
|
|
758
948
|
scrollToBottom: () => {
|
|
759
949
|
(0, import_invariant6.invariant)(containerRef.current, void 0, {
|
|
760
950
|
F: __dxlog_file4,
|
|
@@ -772,8 +962,8 @@ var ScrollContainer = /* @__PURE__ */ (0, import_react5.forwardRef)(({ children,
|
|
|
772
962
|
autoScrollRef.current = false;
|
|
773
963
|
}
|
|
774
964
|
}), []);
|
|
775
|
-
const [sticky, setSticky] = (0,
|
|
776
|
-
(0,
|
|
965
|
+
const [sticky, setSticky] = (0, import_react7.useState)(true);
|
|
966
|
+
(0, import_react7.useEffect)(() => {
|
|
777
967
|
if (!sticky || !containerRef.current) {
|
|
778
968
|
return;
|
|
779
969
|
}
|
|
@@ -785,7 +975,7 @@ var ScrollContainer = /* @__PURE__ */ (0, import_react5.forwardRef)(({ children,
|
|
|
785
975
|
}, [
|
|
786
976
|
children
|
|
787
977
|
]);
|
|
788
|
-
(0,
|
|
978
|
+
(0, import_react7.useEffect)(() => {
|
|
789
979
|
(0, import_invariant6.invariant)(containerRef.current, void 0, {
|
|
790
980
|
F: __dxlog_file4,
|
|
791
981
|
L: 62,
|
|
@@ -801,7 +991,7 @@ var ScrollContainer = /* @__PURE__ */ (0, import_react5.forwardRef)(({ children,
|
|
|
801
991
|
containerRef.current.addEventListener("scrollend", handleScrollEnd);
|
|
802
992
|
return () => containerRef.current?.removeEventListener("scrollend", handleScrollEnd);
|
|
803
993
|
}, []);
|
|
804
|
-
const handleScroll = (0,
|
|
994
|
+
const handleScroll = (0, import_react7.useCallback)((ev) => {
|
|
805
995
|
if (autoScrollRef.current) {
|
|
806
996
|
return;
|
|
807
997
|
}
|
|
@@ -809,7 +999,7 @@ var ScrollContainer = /* @__PURE__ */ (0, import_react5.forwardRef)(({ children,
|
|
|
809
999
|
const sticky2 = scrollTop + clientHeight >= scrollHeight;
|
|
810
1000
|
setSticky(sticky2);
|
|
811
1001
|
}, []);
|
|
812
|
-
return /* @__PURE__ */
|
|
1002
|
+
return /* @__PURE__ */ import_react7.default.createElement("div", {
|
|
813
1003
|
ref: containerRef,
|
|
814
1004
|
onScroll: handleScroll,
|
|
815
1005
|
className: (0, import_react_ui_theme2.mx)("flex flex-col grow overflow-y-scroll scrollbar-none", classNames)
|
|
@@ -817,20 +1007,20 @@ var ScrollContainer = /* @__PURE__ */ (0, import_react5.forwardRef)(({ children,
|
|
|
817
1007
|
});
|
|
818
1008
|
var emptyLines = [];
|
|
819
1009
|
var StatusLine = ({ classNames, line = -1, lines = emptyLines, transition = 300, advance = 1e3, autoAdvance }) => {
|
|
820
|
-
const containerRef = (0,
|
|
821
|
-
const [currentLine, setCurrentLine] = (0,
|
|
822
|
-
(0,
|
|
1010
|
+
const containerRef = (0, import_react9.useRef)(null);
|
|
1011
|
+
const [currentLine, setCurrentLine] = (0, import_react9.useState)(line);
|
|
1012
|
+
(0, import_react9.useEffect)(() => {
|
|
823
1013
|
setCurrentLine(line);
|
|
824
1014
|
}, [
|
|
825
1015
|
line
|
|
826
1016
|
]);
|
|
827
|
-
(0,
|
|
1017
|
+
(0, import_react9.useEffect)(() => {
|
|
828
1018
|
if (!autoAdvance) {
|
|
829
1019
|
return;
|
|
830
1020
|
}
|
|
831
1021
|
const next = () => {
|
|
832
1022
|
setCurrentLine((prev) => {
|
|
833
|
-
if (prev
|
|
1023
|
+
if (prev >= lines.length - 1) {
|
|
834
1024
|
clearInterval(interval);
|
|
835
1025
|
return prev;
|
|
836
1026
|
}
|
|
@@ -845,7 +1035,7 @@ var StatusLine = ({ classNames, line = -1, lines = emptyLines, transition = 300,
|
|
|
845
1035
|
autoAdvance,
|
|
846
1036
|
advance
|
|
847
1037
|
]);
|
|
848
|
-
(0,
|
|
1038
|
+
(0, import_react9.useEffect)(() => {
|
|
849
1039
|
if (containerRef.current) {
|
|
850
1040
|
containerRef.current.style.transition = `transform ${transition}ms ease-in-out`;
|
|
851
1041
|
containerRef.current.style.transform = `translateY(-${currentLine * 24}px)`;
|
|
@@ -853,25 +1043,25 @@ var StatusLine = ({ classNames, line = -1, lines = emptyLines, transition = 300,
|
|
|
853
1043
|
}, [
|
|
854
1044
|
currentLine
|
|
855
1045
|
]);
|
|
856
|
-
return /* @__PURE__ */
|
|
1046
|
+
return /* @__PURE__ */ import_react9.default.createElement("div", {
|
|
857
1047
|
className: (0, import_react_ui_theme4.mx)("relative h-[24px] overflow-hidden", classNames)
|
|
858
|
-
}, /* @__PURE__ */
|
|
1048
|
+
}, /* @__PURE__ */ import_react9.default.createElement("div", {
|
|
859
1049
|
ref: containerRef,
|
|
860
1050
|
className: "h-[24px]"
|
|
861
|
-
}, /* @__PURE__ */
|
|
1051
|
+
}, /* @__PURE__ */ import_react9.default.createElement("div", {
|
|
862
1052
|
className: "flex flex-col"
|
|
863
|
-
}, lines.map((line2, i) => /* @__PURE__ */
|
|
1053
|
+
}, lines.map((line2, i) => /* @__PURE__ */ import_react9.default.createElement("div", {
|
|
864
1054
|
key: i,
|
|
865
1055
|
className: (0, import_react_ui_theme4.mx)("flex h-[24px] items-center")
|
|
866
|
-
}, /* @__PURE__ */
|
|
1056
|
+
}, /* @__PURE__ */ import_react9.default.createElement("span", {
|
|
867
1057
|
className: "truncate"
|
|
868
1058
|
}, line2))))));
|
|
869
1059
|
};
|
|
870
1060
|
var ToggleContainer = ({ title, icon, toggle, defaultOpen, duration = 400, shrinkX = false, children, classNames }) => {
|
|
871
|
-
const [expand, setExpand] = (0,
|
|
872
|
-
const [expandX, setExpandX] = (0,
|
|
873
|
-
const [expandY, setExpandY] = (0,
|
|
874
|
-
(0,
|
|
1061
|
+
const [expand, setExpand] = (0, import_react10.useState)(defaultOpen || !toggle);
|
|
1062
|
+
const [expandX, setExpandX] = (0, import_react10.useState)(shrinkX ? expand : true);
|
|
1063
|
+
const [expandY, setExpandY] = (0, import_react10.useState)(expand);
|
|
1064
|
+
(0, import_react10.useEffect)(() => {
|
|
875
1065
|
let t;
|
|
876
1066
|
if (expand) {
|
|
877
1067
|
if (shrinkX) {
|
|
@@ -892,14 +1082,14 @@ var ToggleContainer = ({ title, icon, toggle, defaultOpen, duration = 400, shrin
|
|
|
892
1082
|
}, [
|
|
893
1083
|
expand
|
|
894
1084
|
]);
|
|
895
|
-
return /* @__PURE__ */
|
|
1085
|
+
return /* @__PURE__ */ import_react10.default.createElement("div", {
|
|
896
1086
|
className: (0, import_react_ui_theme5.mx)("overflow-hidden", classNames)
|
|
897
|
-
}, title && /* @__PURE__ */
|
|
1087
|
+
}, title && /* @__PURE__ */ import_react10.default.createElement("div", {
|
|
898
1088
|
className: "flex gap-1 py-1 items-center text-sm text-subdued cursor-pointer select-none",
|
|
899
1089
|
onClick: toggle ? () => setExpand((open) => !open) : void 0
|
|
900
|
-
}, toggle && /* @__PURE__ */
|
|
1090
|
+
}, toggle && /* @__PURE__ */ import_react10.default.createElement("div", {
|
|
901
1091
|
className: "flex w-[24px] h-[24px] items-center justify-center"
|
|
902
|
-
}, /* @__PURE__ */
|
|
1092
|
+
}, /* @__PURE__ */ import_react10.default.createElement(import_react_ui3.Icon, {
|
|
903
1093
|
size: 4,
|
|
904
1094
|
icon: "ph--caret-right--regular",
|
|
905
1095
|
style: {
|
|
@@ -909,61 +1099,61 @@ var ToggleContainer = ({ title, icon, toggle, defaultOpen, duration = 400, shrin
|
|
|
909
1099
|
"transition transition-transform ease-in-out",
|
|
910
1100
|
expand ? "rotate-90" : "transform-none"
|
|
911
1101
|
]
|
|
912
|
-
})), /* @__PURE__ */
|
|
1102
|
+
})), /* @__PURE__ */ import_react10.default.createElement("div", {
|
|
913
1103
|
className: "flex-1 pis-1 pie-1 truncate"
|
|
914
|
-
}, title), icon), /* @__PURE__ */
|
|
1104
|
+
}, title), icon), /* @__PURE__ */ import_react10.default.createElement("div", {
|
|
915
1105
|
style: {
|
|
916
1106
|
transitionDuration: `${duration}ms`
|
|
917
1107
|
},
|
|
918
1108
|
className: (0, import_react_ui_theme5.mx)("grid transition-[grid-template-columns] ease-in-out", expandX ? "grid-cols-[1fr]" : "grid-cols-[0fr]")
|
|
919
|
-
}, /* @__PURE__ */
|
|
1109
|
+
}, /* @__PURE__ */ import_react10.default.createElement("div", {
|
|
920
1110
|
className: "overflow-hidden"
|
|
921
|
-
}, /* @__PURE__ */
|
|
1111
|
+
}, /* @__PURE__ */ import_react10.default.createElement("div", {
|
|
922
1112
|
style: {
|
|
923
1113
|
transitionDuration: `${duration}ms`
|
|
924
1114
|
},
|
|
925
1115
|
className: (0, import_react_ui_theme5.mx)("grid transition-[grid-template-rows] ease-in-out", expandY ? "grid-rows-[1fr]" : "grid-rows-[0fr]")
|
|
926
|
-
}, /* @__PURE__ */
|
|
1116
|
+
}, /* @__PURE__ */ import_react10.default.createElement("div", {
|
|
927
1117
|
className: (0, import_react_ui_theme5.mx)("flex overflow-hidden transition-opacity")
|
|
928
1118
|
}, children)))));
|
|
929
1119
|
};
|
|
930
1120
|
var MarkdownViewer = ({ classNames, content = "" }) => {
|
|
931
|
-
return /* @__PURE__ */
|
|
1121
|
+
return /* @__PURE__ */ import_react11.default.createElement("div", {
|
|
932
1122
|
className: (0, import_react_ui_theme6.mx)("space-y-2", classNames)
|
|
933
|
-
}, /* @__PURE__ */
|
|
1123
|
+
}, /* @__PURE__ */ import_react11.default.createElement(import_react_markdown.default, {
|
|
934
1124
|
components: {
|
|
935
|
-
a: ({ node, children, href, ...props }) => /* @__PURE__ */
|
|
1125
|
+
a: ({ node, children, href, ...props }) => /* @__PURE__ */ import_react11.default.createElement("a", {
|
|
936
1126
|
href,
|
|
937
1127
|
className: "text-primary-500 hover:text-primary-500",
|
|
938
1128
|
target: "_blank",
|
|
939
1129
|
rel: "noopener noreferrer",
|
|
940
1130
|
...props
|
|
941
1131
|
}, children),
|
|
942
|
-
ol: ({ node, children, ...props }) => /* @__PURE__ */
|
|
1132
|
+
ol: ({ node, children, ...props }) => /* @__PURE__ */ import_react11.default.createElement("ol", {
|
|
943
1133
|
className: "leading-tight list-decimal pl-6",
|
|
944
1134
|
...(0, import_util4.omit)(props, [
|
|
945
1135
|
"ordered"
|
|
946
1136
|
])
|
|
947
1137
|
}, children),
|
|
948
|
-
ul: ({ node, children, ...props }) => /* @__PURE__ */
|
|
1138
|
+
ul: ({ node, children, ...props }) => /* @__PURE__ */ import_react11.default.createElement("ul", {
|
|
949
1139
|
className: "leading-tight list-disc pl-6",
|
|
950
1140
|
...(0, import_util4.omit)(props, [
|
|
951
1141
|
"ordered"
|
|
952
1142
|
])
|
|
953
1143
|
}, children),
|
|
954
|
-
li: ({ node, children, ...props }) => /* @__PURE__ */
|
|
1144
|
+
li: ({ node, children, ...props }) => /* @__PURE__ */ import_react11.default.createElement("li", {
|
|
955
1145
|
className: "",
|
|
956
1146
|
...(0, import_util4.omit)(props, [
|
|
957
1147
|
"ordered"
|
|
958
1148
|
])
|
|
959
1149
|
}, children),
|
|
960
|
-
blockquote: ({ node, children, ...props }) => /* @__PURE__ */
|
|
1150
|
+
blockquote: ({ node, children, ...props }) => /* @__PURE__ */ import_react11.default.createElement("blockquote", {
|
|
961
1151
|
className: "border-l-4 border-primary-500 pl-4 my-4 text-primary-500",
|
|
962
1152
|
...props
|
|
963
1153
|
}, children),
|
|
964
1154
|
code: ({ children, className }) => {
|
|
965
1155
|
const [_, language] = /language-(\w+)/.exec(className || "") || [];
|
|
966
|
-
return /* @__PURE__ */
|
|
1156
|
+
return /* @__PURE__ */ import_react11.default.createElement(import_react_ui_syntax_highlighter2.SyntaxHighlighter, {
|
|
967
1157
|
PreTag: "div",
|
|
968
1158
|
language,
|
|
969
1159
|
className: "p-0"
|
|
@@ -975,56 +1165,69 @@ var MarkdownViewer = ({ classNames, content = "" }) => {
|
|
|
975
1165
|
var __dxlog_file5 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-automation/src/components/Thread/ThreadMessage.tsx";
|
|
976
1166
|
var ThreadMessage = ({ classNames, message, collapse, debug, onSuggest, onDelete }) => {
|
|
977
1167
|
if (typeof message !== "object") {
|
|
978
|
-
return /* @__PURE__ */
|
|
1168
|
+
return /* @__PURE__ */ import_react8.default.createElement("div", {
|
|
979
1169
|
className: (0, import_react_ui_theme3.mx)(classNames)
|
|
980
1170
|
}, message);
|
|
981
1171
|
}
|
|
982
1172
|
const { role, content = [] } = message;
|
|
983
|
-
const
|
|
984
|
-
if (collapse &&
|
|
1173
|
+
const toolBlocks = content.filter((block) => block.type === "tool_use" || block.type === "tool_result");
|
|
1174
|
+
if (collapse && toolBlocks.length > 0) {
|
|
985
1175
|
let request;
|
|
986
|
-
const
|
|
987
|
-
|
|
1176
|
+
const json = [];
|
|
1177
|
+
const lines = toolBlocks.map((block) => {
|
|
1178
|
+
switch (block.type) {
|
|
988
1179
|
case "tool_use": {
|
|
989
|
-
request =
|
|
990
|
-
|
|
1180
|
+
request = block;
|
|
1181
|
+
json.push(block);
|
|
1182
|
+
return `Calling ${block.name}...`;
|
|
991
1183
|
}
|
|
992
1184
|
case "tool_result": {
|
|
993
1185
|
if (!request) {
|
|
1186
|
+
import_log6.log.warn("unexpected message", {
|
|
1187
|
+
tool: block
|
|
1188
|
+
}, {
|
|
1189
|
+
F: __dxlog_file5,
|
|
1190
|
+
L: 57,
|
|
1191
|
+
S: void 0,
|
|
1192
|
+
C: (f, a) => f(...a)
|
|
1193
|
+
});
|
|
994
1194
|
return "Error";
|
|
995
1195
|
}
|
|
1196
|
+
json.push(block);
|
|
996
1197
|
return `Processed ${request.name}`;
|
|
997
1198
|
}
|
|
998
|
-
default:
|
|
1199
|
+
default: {
|
|
1200
|
+
request = void 0;
|
|
999
1201
|
return "Error";
|
|
1202
|
+
}
|
|
1000
1203
|
}
|
|
1001
1204
|
});
|
|
1002
|
-
return /* @__PURE__ */
|
|
1205
|
+
return /* @__PURE__ */ import_react8.default.createElement("div", {
|
|
1003
1206
|
className: (0, import_react_ui_theme3.mx)("flex", classNames)
|
|
1004
|
-
}, /* @__PURE__ */
|
|
1005
|
-
className: "w-full p-1 px-2 overflow-hidden rounded-md bg-
|
|
1006
|
-
}, /* @__PURE__ */
|
|
1007
|
-
title: /* @__PURE__ */
|
|
1207
|
+
}, /* @__PURE__ */ import_react8.default.createElement("div", {
|
|
1208
|
+
className: "w-full p-1 px-2 overflow-hidden rounded-md bg-baseSurface"
|
|
1209
|
+
}, /* @__PURE__ */ import_react8.default.createElement(ToggleContainer, {
|
|
1210
|
+
title: /* @__PURE__ */ import_react8.default.createElement(StatusLine, {
|
|
1008
1211
|
lines,
|
|
1009
1212
|
autoAdvance: true
|
|
1010
1213
|
}),
|
|
1011
1214
|
toggle: true
|
|
1012
|
-
}, /* @__PURE__ */
|
|
1013
|
-
data:
|
|
1215
|
+
}, /* @__PURE__ */ import_react8.default.createElement(import_react_ui_syntax_highlighter.Json, {
|
|
1216
|
+
data: json,
|
|
1014
1217
|
classNames: "!p-1 text-xs"
|
|
1015
1218
|
}))));
|
|
1016
1219
|
}
|
|
1017
|
-
return /* @__PURE__ */
|
|
1220
|
+
return /* @__PURE__ */ import_react8.default.createElement("div", {
|
|
1018
1221
|
className: (0, import_react_ui_theme3.mx)("flex flex-col shrink-0 gap-2")
|
|
1019
|
-
}, debug && /* @__PURE__ */
|
|
1222
|
+
}, debug && /* @__PURE__ */ import_react8.default.createElement("div", {
|
|
1020
1223
|
className: "text-xs text-subdued"
|
|
1021
|
-
}, message.id, " ", onDelete && /* @__PURE__ */
|
|
1224
|
+
}, message.id, " ", onDelete && /* @__PURE__ */ import_react8.default.createElement("span", {
|
|
1022
1225
|
className: "cursor-pointer underline",
|
|
1023
1226
|
onClick: () => onDelete(message.id)
|
|
1024
|
-
}, "delete")), content.map((block, idx) => /* @__PURE__ */
|
|
1227
|
+
}, "delete")), content.map((block, idx) => /* @__PURE__ */ import_react8.default.createElement("div", {
|
|
1025
1228
|
key: idx,
|
|
1026
1229
|
className: (0, import_react_ui_theme3.mx)("flex", classNames, block.type === "text" && role === "user" && "justify-end")
|
|
1027
|
-
}, /* @__PURE__ */
|
|
1230
|
+
}, /* @__PURE__ */ import_react8.default.createElement(Block, {
|
|
1028
1231
|
role,
|
|
1029
1232
|
block,
|
|
1030
1233
|
onSuggest: onSuggest ?? (() => {
|
|
@@ -1033,25 +1236,24 @@ var ThreadMessage = ({ classNames, message, collapse, debug, onSuggest, onDelete
|
|
|
1033
1236
|
};
|
|
1034
1237
|
var Block = ({ block, role, onSuggest }) => {
|
|
1035
1238
|
const Component = componentMap[block.type] ?? componentMap.default;
|
|
1036
|
-
return /* @__PURE__ */
|
|
1037
|
-
className: (0, import_react_ui_theme3.mx)("p-1 px-2 overflow-hidden rounded-md", (block.type !== "text" || block.disposition) && "w-full bg-
|
|
1038
|
-
}, /* @__PURE__ */
|
|
1239
|
+
return /* @__PURE__ */ import_react8.default.createElement("div", {
|
|
1240
|
+
className: (0, import_react_ui_theme3.mx)("p-1 px-2 overflow-hidden rounded-md", (block.type !== "text" || block.disposition) && "w-full bg-baseSurface", block.type === "text" && role === "user" && "bg-primary-200 dark:bg-primary-500")
|
|
1241
|
+
}, /* @__PURE__ */ import_react8.default.createElement(Component, {
|
|
1039
1242
|
block,
|
|
1040
1243
|
onSuggest
|
|
1041
1244
|
}));
|
|
1042
1245
|
};
|
|
1043
1246
|
var titles = {
|
|
1044
1247
|
["cot"]: "Chain of thought",
|
|
1045
|
-
|
|
1248
|
+
["artifact"]: "Artifact",
|
|
1046
1249
|
["tool_use"]: "Tool request",
|
|
1047
|
-
["tool_result"]: "Tool result"
|
|
1048
|
-
["artifact"]: "Artifact"
|
|
1250
|
+
["tool_result"]: "Tool result"
|
|
1049
1251
|
};
|
|
1050
1252
|
var componentMap = {
|
|
1051
1253
|
text: ({ block }) => {
|
|
1052
1254
|
(0, import_invariant7.invariant)(block.type === "text", void 0, {
|
|
1053
1255
|
F: __dxlog_file5,
|
|
1054
|
-
L:
|
|
1256
|
+
L: 134,
|
|
1055
1257
|
S: void 0,
|
|
1056
1258
|
A: [
|
|
1057
1259
|
"block.type === 'text'",
|
|
@@ -1060,23 +1262,23 @@ var componentMap = {
|
|
|
1060
1262
|
});
|
|
1061
1263
|
const title = block.disposition ? titles[block.disposition] : void 0;
|
|
1062
1264
|
if (!title) {
|
|
1063
|
-
return /* @__PURE__ */
|
|
1265
|
+
return /* @__PURE__ */ import_react8.default.createElement(MarkdownViewer, {
|
|
1064
1266
|
content: block.text,
|
|
1065
1267
|
classNames: [
|
|
1066
1268
|
block.disposition === "cot" && "text-sm text-subdued"
|
|
1067
1269
|
]
|
|
1068
1270
|
});
|
|
1069
1271
|
}
|
|
1070
|
-
return /* @__PURE__ */
|
|
1272
|
+
return /* @__PURE__ */ import_react8.default.createElement(ToggleContainer, {
|
|
1071
1273
|
title,
|
|
1072
|
-
icon: block.pending ? /* @__PURE__ */
|
|
1274
|
+
icon: block.pending ? /* @__PURE__ */ import_react8.default.createElement(import_react_ui2.Icon, {
|
|
1073
1275
|
icon: "ph--circle-notch--regular",
|
|
1074
1276
|
classNames: "text-subdued ml-2 animate-spin",
|
|
1075
1277
|
size: 4
|
|
1076
1278
|
}) : void 0,
|
|
1077
1279
|
defaultOpen: block.disposition === "cot",
|
|
1078
1280
|
toggle: true
|
|
1079
|
-
}, /* @__PURE__ */
|
|
1281
|
+
}, /* @__PURE__ */ import_react8.default.createElement(MarkdownViewer, {
|
|
1080
1282
|
content: block.text,
|
|
1081
1283
|
classNames: [
|
|
1082
1284
|
block.disposition === "cot" && "text-sm text-subdued"
|
|
@@ -1086,7 +1288,7 @@ var componentMap = {
|
|
|
1086
1288
|
json: ({ block, onSuggest }) => {
|
|
1087
1289
|
(0, import_invariant7.invariant)(block.type === "json", void 0, {
|
|
1088
1290
|
F: __dxlog_file5,
|
|
1089
|
-
L:
|
|
1291
|
+
L: 159,
|
|
1090
1292
|
S: void 0,
|
|
1091
1293
|
A: [
|
|
1092
1294
|
"block.type === 'json'",
|
|
@@ -1096,23 +1298,23 @@ var componentMap = {
|
|
|
1096
1298
|
switch (block.disposition) {
|
|
1097
1299
|
case "suggest": {
|
|
1098
1300
|
const { text = "" } = (0, import_util3.safeParseJson)(block.json ?? "{}") ?? {};
|
|
1099
|
-
return /* @__PURE__ */
|
|
1301
|
+
return /* @__PURE__ */ import_react8.default.createElement(import_react_ui2.Button, {
|
|
1100
1302
|
onClick: () => onSuggest(text)
|
|
1101
1303
|
}, text);
|
|
1102
1304
|
}
|
|
1103
1305
|
case "select": {
|
|
1104
1306
|
const { options = [] } = (0, import_util3.safeParseJson)(block.json ?? "{}") ?? {};
|
|
1105
|
-
return /* @__PURE__ */
|
|
1307
|
+
return /* @__PURE__ */ import_react8.default.createElement(import_react_ui2.ButtonGroup, null, options.map((option) => /* @__PURE__ */ import_react8.default.createElement(import_react_ui2.Button, {
|
|
1106
1308
|
key: option,
|
|
1107
1309
|
onClick: () => onSuggest(option)
|
|
1108
1310
|
}, option)));
|
|
1109
1311
|
}
|
|
1110
1312
|
default: {
|
|
1111
1313
|
const title = block.disposition ? titles[block.disposition] : void 0;
|
|
1112
|
-
return /* @__PURE__ */
|
|
1314
|
+
return /* @__PURE__ */ import_react8.default.createElement(ToggleContainer, {
|
|
1113
1315
|
title: title ?? "JSON",
|
|
1114
1316
|
toggle: true
|
|
1115
|
-
}, /* @__PURE__ */
|
|
1317
|
+
}, /* @__PURE__ */ import_react8.default.createElement(import_react_ui_syntax_highlighter.Json, {
|
|
1116
1318
|
data: (0, import_util3.safeParseJson)(block.json ?? block),
|
|
1117
1319
|
classNames: "!p-1 text-xs"
|
|
1118
1320
|
}));
|
|
@@ -1124,20 +1326,20 @@ var componentMap = {
|
|
|
1124
1326
|
if (block.type === "tool_use") {
|
|
1125
1327
|
title = `Tool [${block.name}]`;
|
|
1126
1328
|
}
|
|
1127
|
-
return /* @__PURE__ */
|
|
1329
|
+
return /* @__PURE__ */ import_react8.default.createElement(ToggleContainer, {
|
|
1128
1330
|
title: title ?? "JSON",
|
|
1129
1331
|
toggle: true
|
|
1130
|
-
}, /* @__PURE__ */
|
|
1332
|
+
}, /* @__PURE__ */ import_react8.default.createElement(import_react_ui_syntax_highlighter.Json, {
|
|
1131
1333
|
data: block,
|
|
1132
1334
|
classNames: "!p-1 text-xs"
|
|
1133
1335
|
}));
|
|
1134
1336
|
}
|
|
1135
1337
|
};
|
|
1136
1338
|
var Thread = ({ messages, streaming, collapse, debug, onSubmit, onStop, onSuggest, onDelete }) => {
|
|
1137
|
-
const { t } = (0, import_react_ui.useTranslation)(
|
|
1138
|
-
const scroller = (0,
|
|
1139
|
-
const [text, setText] = (0,
|
|
1140
|
-
const handleKeyDown = (0,
|
|
1339
|
+
const { t } = (0, import_react_ui.useTranslation)(import_chunk_TQEDPRY5.AUTOMATION_PLUGIN);
|
|
1340
|
+
const scroller = (0, import_react6.useRef)(null);
|
|
1341
|
+
const [text, setText] = (0, import_react6.useState)("");
|
|
1342
|
+
const handleKeyDown = (0, import_react6.useCallback)((ev) => {
|
|
1141
1343
|
switch (ev.key) {
|
|
1142
1344
|
case "Escape": {
|
|
1143
1345
|
setText("");
|
|
@@ -1156,7 +1358,7 @@ var Thread = ({ messages, streaming, collapse, debug, onSubmit, onStop, onSugges
|
|
|
1156
1358
|
}, [
|
|
1157
1359
|
text
|
|
1158
1360
|
]);
|
|
1159
|
-
const { messages: lines = [] } = (0,
|
|
1361
|
+
const { messages: lines = [] } = (0, import_react6.useMemo)(() => {
|
|
1160
1362
|
if (!collapse) {
|
|
1161
1363
|
return {
|
|
1162
1364
|
messages: messages ?? []
|
|
@@ -1214,12 +1416,12 @@ var Thread = ({ messages, streaming, collapse, debug, onSubmit, onStop, onSugges
|
|
|
1214
1416
|
messages,
|
|
1215
1417
|
collapse
|
|
1216
1418
|
]);
|
|
1217
|
-
return /* @__PURE__ */
|
|
1419
|
+
return /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
1218
1420
|
className: "flex flex-col grow overflow-hidden"
|
|
1219
|
-
}, /* @__PURE__ */
|
|
1421
|
+
}, /* @__PURE__ */ import_react6.default.createElement(ScrollContainer, {
|
|
1220
1422
|
ref: scroller,
|
|
1221
1423
|
classNames: "py-2 gap-2 overflow-x-hidden"
|
|
1222
|
-
}, lines.map((message) => /* @__PURE__ */
|
|
1424
|
+
}, lines.map((message) => /* @__PURE__ */ import_react6.default.createElement(ThreadMessage, {
|
|
1223
1425
|
key: message.id,
|
|
1224
1426
|
classNames: "px-4",
|
|
1225
1427
|
message,
|
|
@@ -1227,18 +1429,18 @@ var Thread = ({ messages, streaming, collapse, debug, onSubmit, onStop, onSugges
|
|
|
1227
1429
|
debug,
|
|
1228
1430
|
onSuggest,
|
|
1229
1431
|
onDelete
|
|
1230
|
-
}))), onSubmit && /* @__PURE__ */
|
|
1432
|
+
}))), onSubmit && /* @__PURE__ */ import_react6.default.createElement("div", {
|
|
1231
1433
|
className: "flex p-4 gap-3 items-center"
|
|
1232
|
-
}, /* @__PURE__ */
|
|
1434
|
+
}, /* @__PURE__ */ import_react6.default.createElement(import_react_ui_sfx.Spinner, {
|
|
1233
1435
|
active: streaming
|
|
1234
|
-
}), /* @__PURE__ */
|
|
1436
|
+
}), /* @__PURE__ */ import_react6.default.createElement(import_react_ui.Input.Root, null, /* @__PURE__ */ import_react6.default.createElement(import_react_ui.Input.TextInput, {
|
|
1235
1437
|
autoFocus: true,
|
|
1236
|
-
classNames: "px-2
|
|
1438
|
+
classNames: "px-2 baseSurface rounded",
|
|
1237
1439
|
placeholder: t("chat input placeholder"),
|
|
1238
1440
|
value: text,
|
|
1239
1441
|
onChange: (ev) => setText(ev.target.value),
|
|
1240
1442
|
onKeyDown: handleKeyDown
|
|
1241
|
-
})), onStop && /* @__PURE__ */
|
|
1443
|
+
})), onStop && /* @__PURE__ */ import_react6.default.createElement(import_react_ui.IconButton, {
|
|
1242
1444
|
disabled: !streaming,
|
|
1243
1445
|
classNames: (0, import_react_ui_theme.mx)("!p-1 !opacity-20 transition", streaming && "!opacity-80"),
|
|
1244
1446
|
variant: "ghost",
|
|
@@ -1251,79 +1453,26 @@ var Thread = ({ messages, streaming, collapse, debug, onSubmit, onStop, onSugges
|
|
|
1251
1453
|
};
|
|
1252
1454
|
var __dxlog_file6 = "/home/runner/work/dxos/dxos/packages/plugins/experimental/plugin-automation/src/components/ChatContainer/ChatContainer.tsx";
|
|
1253
1455
|
var ChatContainer = ({ chat, role }) => {
|
|
1254
|
-
const
|
|
1255
|
-
const
|
|
1256
|
-
const aiClient = (0, import_app_framework.useCapability)(import_chunk_ZS5RZ7RM.AutomationCapabilities.AiClient);
|
|
1257
|
-
const artifactDefinitions = (0, import_app_framework.useCapabilities)(import_app_framework.Capabilities.ArtifactDefinition);
|
|
1258
|
-
const globalTools = (0, import_app_framework.useCapabilities)(import_app_framework.Capabilities.Tools);
|
|
1259
|
-
const functions = (0, import_echo.useQuery)(space, import_echo.Filter.schema(import_functions.FunctionType));
|
|
1260
|
-
const serviceRegistry = (0, import_react.useMemo)(() => new import_chunk_LU4HQWJD.MockServiceRegistry(), []);
|
|
1261
|
-
const [serviceTools, setServiceTools] = (0, import_react.useState)([]);
|
|
1262
|
-
(0, import_react.useEffect)(() => {
|
|
1263
|
-
queueMicrotask(async () => {
|
|
1264
|
-
const services = await serviceRegistry.queryServices({});
|
|
1265
|
-
const tools2 = await Promise.all(services.map((service) => createToolsFromService(service)));
|
|
1266
|
-
setServiceTools(tools2.flat());
|
|
1267
|
-
});
|
|
1268
|
-
}, []);
|
|
1269
|
-
const tools = (0, import_react.useMemo)(() => [
|
|
1270
|
-
...globalTools.flat(),
|
|
1271
|
-
...artifactDefinitions.flatMap((definition) => definition.tools),
|
|
1272
|
-
...functions.map((fn) => covertFunctionToTool(fn, config.values.runtime?.services?.edge?.url ?? "", space?.id)).filter(import_util.isNotNullOrUndefined),
|
|
1273
|
-
...serviceTools
|
|
1274
|
-
], [
|
|
1275
|
-
globalTools,
|
|
1276
|
-
artifactDefinitions,
|
|
1277
|
-
functions,
|
|
1278
|
-
serviceTools,
|
|
1279
|
-
space?.id
|
|
1280
|
-
]);
|
|
1281
|
-
const systemPrompt = (0, import_react.useMemo)(() => (0, import_artifact.createSystemPrompt)({
|
|
1282
|
-
artifacts: artifactDefinitions.map((definition) => definition.instructions)
|
|
1283
|
-
}), [
|
|
1284
|
-
artifactDefinitions
|
|
1285
|
-
]);
|
|
1286
|
-
const { dispatchPromise: dispatch } = (0, import_app_framework.useIntentDispatcher)();
|
|
1287
|
-
const processor = (0, import_react.useMemo)(() => new ChatProcessor(aiClient, tools, {
|
|
1288
|
-
space,
|
|
1289
|
-
dispatch
|
|
1290
|
-
}, {
|
|
1291
|
-
model: "@anthropic/claude-3-5-sonnet-20241022",
|
|
1292
|
-
systemPrompt
|
|
1293
|
-
}), [
|
|
1294
|
-
aiClient,
|
|
1295
|
-
tools,
|
|
1296
|
-
space,
|
|
1297
|
-
dispatch,
|
|
1298
|
-
systemPrompt
|
|
1299
|
-
]);
|
|
1300
|
-
const queueDxn = (0, import_react.useMemo)(() => new import_keys.DXN(import_keys.DXN.kind.QUEUE, [
|
|
1301
|
-
import_keys.QueueSubspaceTags.DATA,
|
|
1302
|
-
space.id,
|
|
1303
|
-
chat.queue.dxn.parts.at(-1)
|
|
1304
|
-
]), [
|
|
1305
|
-
chat.queue.dxn
|
|
1306
|
-
]);
|
|
1307
|
-
const edgeClient = (0, import_react_edge_client.useEdgeClient)();
|
|
1308
|
-
const messageQueue = (0, import_react_edge_client.useQueue)(edgeClient, queueDxn);
|
|
1456
|
+
const processor = useChatProcessor(chat);
|
|
1457
|
+
const messageQueue = useMessageQueue(chat);
|
|
1309
1458
|
const messages = [
|
|
1310
1459
|
...messageQueue?.items ?? [],
|
|
1311
1460
|
...processor.messages.value
|
|
1312
1461
|
];
|
|
1313
|
-
const handleSubmit = (0, import_react.useCallback)(async (
|
|
1462
|
+
const handleSubmit = (0, import_react.useCallback)(async (text) => {
|
|
1314
1463
|
if (processor.streaming.value) {
|
|
1315
1464
|
await processor.cancel();
|
|
1316
1465
|
}
|
|
1317
1466
|
(0, import_invariant.invariant)(messageQueue, void 0, {
|
|
1318
1467
|
F: __dxlog_file6,
|
|
1319
|
-
L:
|
|
1468
|
+
L: 25,
|
|
1320
1469
|
S: void 0,
|
|
1321
1470
|
A: [
|
|
1322
1471
|
"messageQueue",
|
|
1323
1472
|
""
|
|
1324
1473
|
]
|
|
1325
1474
|
});
|
|
1326
|
-
await processor.request(
|
|
1475
|
+
await processor.request(text, {
|
|
1327
1476
|
history: messageQueue.items,
|
|
1328
1477
|
onComplete: (messages2) => messageQueue.append(messages2)
|
|
1329
1478
|
});
|
|
@@ -1344,7 +1493,9 @@ var ChatContainer = ({ chat, role }) => {
|
|
|
1344
1493
|
}, /* @__PURE__ */ import_react.default.createElement(Thread, {
|
|
1345
1494
|
messages,
|
|
1346
1495
|
streaming: processor.streaming.value,
|
|
1496
|
+
collapse: true,
|
|
1347
1497
|
onSubmit: handleSubmit,
|
|
1498
|
+
onSuggest: handleSubmit,
|
|
1348
1499
|
onStop: handleStop
|
|
1349
1500
|
}));
|
|
1350
1501
|
};
|
|
@@ -1359,6 +1510,6 @@ var ChatContainer_default = ChatContainer;
|
|
|
1359
1510
|
MarkdownViewer,
|
|
1360
1511
|
ReactSurface,
|
|
1361
1512
|
Thread,
|
|
1362
|
-
|
|
1513
|
+
useServices
|
|
1363
1514
|
});
|
|
1364
|
-
//# sourceMappingURL=chunk-
|
|
1515
|
+
//# sourceMappingURL=chunk-NH7STAX6.cjs.map
|