@dxos/plugin-automation 0.8.4-main.67995b8 → 0.8.4-main.ae835ea
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-LBXJDM6Z.mjs +11 -0
- package/dist/lib/browser/AutomationSettings-IIEI5D2K.mjs +68 -0
- package/dist/lib/browser/AutomationSettings-IIEI5D2K.mjs.map +7 -0
- package/dist/lib/browser/{FunctionsContainer-IOB333TX.mjs → FunctionsContainer-IZTCGNJZ.mjs} +9 -12
- package/dist/lib/browser/FunctionsContainer-IZTCGNJZ.mjs.map +7 -0
- package/dist/lib/browser/{FunctionsPanel-56ZKRVM5.mjs → FunctionsPanel-HFCK3JRB.mjs} +3 -3
- package/dist/lib/browser/{app-graph-builder-ZTAUTFI4.mjs → app-graph-builder-7VKA2GS3.mjs} +12 -11
- package/dist/lib/browser/app-graph-builder-7VKA2GS3.mjs.map +7 -0
- package/dist/lib/browser/chunk-CVYJM6OO.mjs +66 -0
- package/dist/lib/browser/chunk-CVYJM6OO.mjs.map +7 -0
- package/dist/lib/browser/{chunk-LYJVTIVD.mjs → chunk-FHSN7G4H.mjs} +25 -12
- package/dist/lib/browser/chunk-FHSN7G4H.mjs.map +7 -0
- package/dist/lib/browser/chunk-GCGHLQM2.mjs +15 -0
- package/dist/lib/browser/chunk-GCGHLQM2.mjs.map +7 -0
- package/dist/lib/browser/{chunk-FSJZXTS2.mjs → chunk-JW7XSPYW.mjs} +69 -32
- package/dist/lib/browser/chunk-JW7XSPYW.mjs.map +7 -0
- package/dist/lib/browser/{chunk-ERTIGJYE.mjs → chunk-K5YNWESC.mjs} +68 -32
- package/dist/lib/browser/chunk-K5YNWESC.mjs.map +7 -0
- package/dist/lib/browser/chunk-LZQFZO3B.mjs +17 -0
- package/dist/lib/browser/chunk-LZQFZO3B.mjs.map +7 -0
- package/dist/lib/browser/chunk-XXZNGORC.mjs +14 -0
- package/dist/lib/browser/chunk-XXZNGORC.mjs.map +7 -0
- package/dist/lib/browser/{chunk-HN7OHFCB.mjs → chunk-YBPJCY3F.mjs} +3 -3
- package/dist/lib/browser/chunk-YBPJCY3F.mjs.map +7 -0
- package/dist/lib/browser/compute-runtime-PFYRMGN2.mjs +114 -0
- package/dist/lib/browser/compute-runtime-PFYRMGN2.mjs.map +7 -0
- package/dist/lib/browser/hooks/index.mjs +11 -0
- package/dist/lib/browser/index.mjs +44 -19
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/{intent-resolver-U3ZAQEFW.mjs → intent-resolver-5HR7M7T6.mjs} +15 -14
- package/dist/lib/browser/intent-resolver-5HR7M7T6.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-4DFSM7OX.mjs → react-surface-WPMY3EX2.mjs} +18 -19
- package/dist/lib/browser/react-surface-WPMY3EX2.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/node-esm/{AutomationPanel-YYUMSK2W.mjs → AutomationPanel-NVEIUIZP.mjs} +4 -4
- package/dist/lib/node-esm/AutomationSettings-VIIEPI2P.mjs +69 -0
- package/dist/lib/node-esm/AutomationSettings-VIIEPI2P.mjs.map +7 -0
- package/dist/lib/node-esm/{FunctionsContainer-DJWB6WFH.mjs → FunctionsContainer-KKRCIXGB.mjs} +9 -12
- package/dist/lib/node-esm/FunctionsContainer-KKRCIXGB.mjs.map +7 -0
- package/dist/lib/node-esm/{FunctionsPanel-KGIOZSPZ.mjs → FunctionsPanel-74ELGR7P.mjs} +3 -3
- package/dist/lib/node-esm/FunctionsPanel-74ELGR7P.mjs.map +7 -0
- package/dist/lib/node-esm/{app-graph-builder-3FP63ZSG.mjs → app-graph-builder-RTOFJNFV.mjs} +12 -11
- package/dist/lib/node-esm/app-graph-builder-RTOFJNFV.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-3BJ6BR3E.mjs +67 -0
- package/dist/lib/node-esm/chunk-3BJ6BR3E.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-CEVIVRTY.mjs +19 -0
- package/dist/lib/node-esm/chunk-CEVIVRTY.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-OEZNHUL2.mjs → chunk-ECJKIUBO.mjs} +3 -3
- package/dist/lib/node-esm/chunk-ECJKIUBO.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-ZGPUV5VS.mjs → chunk-JOCKHLFT.mjs} +25 -12
- package/dist/lib/node-esm/chunk-JOCKHLFT.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-MRYKW5TM.mjs +16 -0
- package/dist/lib/node-esm/chunk-MRYKW5TM.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-U5Q2NI7H.mjs +16 -0
- package/dist/lib/node-esm/chunk-U5Q2NI7H.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-AZH66CED.mjs → chunk-W76WUTZY.mjs} +69 -32
- package/dist/lib/node-esm/chunk-W76WUTZY.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-HIMYPGHF.mjs → chunk-Y7PJXFCJ.mjs} +68 -32
- package/dist/lib/node-esm/chunk-Y7PJXFCJ.mjs.map +7 -0
- package/dist/lib/node-esm/compute-runtime-IXCSD3W7.mjs +115 -0
- package/dist/lib/node-esm/compute-runtime-IXCSD3W7.mjs.map +7 -0
- package/dist/lib/node-esm/hooks/index.mjs +12 -0
- package/dist/lib/node-esm/hooks/index.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +44 -19
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/{intent-resolver-3QWXEBPX.mjs → intent-resolver-KDRYB5BC.mjs} +15 -14
- package/dist/lib/node-esm/intent-resolver-KDRYB5BC.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{react-surface-3PNW7NDW.mjs → react-surface-Y2BBJV2I.mjs} +18 -19
- package/dist/lib/node-esm/react-surface-Y2BBJV2I.mjs.map +7 -0
- package/dist/lib/node-esm/types/index.mjs +2 -2
- package/dist/types/src/AutomationPlugin.d.ts +1 -1
- package/dist/types/src/AutomationPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +19 -0
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -0
- package/dist/types/src/capabilities/compute-runtime.d.ts +5 -0
- package/dist/types/src/capabilities/compute-runtime.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +5 -3
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +6 -5
- package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
- package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts +46 -4
- package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts.map +1 -1
- package/dist/types/src/components/AutomationSettings.d.ts +5 -0
- package/dist/types/src/components/AutomationSettings.d.ts.map +1 -0
- package/dist/types/src/components/FunctionsContainer.d.ts.map +1 -1
- package/dist/types/src/components/FunctionsPanel/FunctionsPanel.d.ts.map +1 -1
- package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts +2 -2
- package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts.map +1 -1
- package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts.map +1 -1
- package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts +7 -5
- package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +1 -1
- package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts +47 -4
- package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts.map +1 -1
- package/dist/types/src/components/TriggerSettings.d.ts +6 -0
- package/dist/types/src/components/TriggerSettings.d.ts.map +1 -0
- package/dist/types/src/components/index.d.ts +2 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +4 -0
- package/dist/types/src/events.d.ts.map +1 -0
- package/dist/types/src/hooks/index.d.ts +3 -0
- package/dist/types/src/hooks/index.d.ts.map +1 -0
- package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts +8 -0
- package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts.map +1 -0
- package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts +11 -0
- package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts.map +1 -0
- package/dist/types/src/index.d.ts +3 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +0 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +3 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +1 -1
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +62 -41
- package/src/AutomationPlugin.tsx +37 -31
- package/src/capabilities/app-graph-builder.ts +12 -11
- package/src/capabilities/capabilities.ts +48 -0
- package/src/capabilities/compute-runtime.ts +138 -0
- package/src/capabilities/index.ts +3 -0
- package/src/capabilities/intent-resolver.ts +11 -11
- package/src/capabilities/react-surface.tsx +13 -14
- package/src/components/AutomationPanel/AutomationPanel.stories.tsx +15 -16
- package/src/components/AutomationPanel/AutomationPanel.tsx +101 -50
- package/src/components/AutomationSettings.tsx +30 -0
- package/src/components/FunctionsContainer.tsx +11 -13
- package/src/components/FunctionsPanel/FunctionsPanel.tsx +26 -14
- package/src/components/TriggerEditor/FunctionInputEditor.tsx +10 -4
- package/src/components/TriggerEditor/SpecSelector.tsx +23 -17
- package/src/components/TriggerEditor/TriggerEditor.stories.tsx +68 -26
- package/src/components/TriggerEditor/TriggerEditor.tsx +45 -25
- package/src/components/TriggerSettings.tsx +25 -0
- package/src/components/index.ts +1 -1
- package/src/events.ts +11 -0
- package/src/hooks/index.ts +6 -0
- package/src/hooks/useComputeRuntimeCallback.ts +32 -0
- package/src/hooks/useTriggerRuntimeControls.ts +52 -0
- package/src/index.ts +3 -0
- package/src/meta.ts +6 -5
- package/src/testing/test-functions.ts +1 -1
- package/src/translations.ts +5 -0
- package/src/types/schema.ts +1 -1
- package/dist/lib/browser/AutomationContainer-VZNV2ZQF.mjs +0 -38
- package/dist/lib/browser/AutomationContainer-VZNV2ZQF.mjs.map +0 -7
- package/dist/lib/browser/AutomationPanel-ZWA6GOFY.mjs +0 -11
- package/dist/lib/browser/FunctionsContainer-IOB333TX.mjs.map +0 -7
- package/dist/lib/browser/app-graph-builder-ZTAUTFI4.mjs.map +0 -7
- package/dist/lib/browser/chunk-ECSTS2UI.mjs +0 -14
- package/dist/lib/browser/chunk-ECSTS2UI.mjs.map +0 -7
- package/dist/lib/browser/chunk-ERTIGJYE.mjs.map +0 -7
- package/dist/lib/browser/chunk-FSJZXTS2.mjs.map +0 -7
- package/dist/lib/browser/chunk-GW5U2DGT.mjs +0 -15
- package/dist/lib/browser/chunk-GW5U2DGT.mjs.map +0 -7
- package/dist/lib/browser/chunk-HN7OHFCB.mjs.map +0 -7
- package/dist/lib/browser/chunk-LYJVTIVD.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-U3ZAQEFW.mjs.map +0 -7
- package/dist/lib/browser/react-surface-4DFSM7OX.mjs.map +0 -7
- package/dist/lib/node-esm/AutomationContainer-WMIH3F4V.mjs +0 -39
- package/dist/lib/node-esm/AutomationContainer-WMIH3F4V.mjs.map +0 -7
- package/dist/lib/node-esm/FunctionsContainer-DJWB6WFH.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-3FP63ZSG.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-AZH66CED.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HIMYPGHF.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-NK5N3QKD.mjs +0 -17
- package/dist/lib/node-esm/chunk-NK5N3QKD.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-OEZNHUL2.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-SGZPTJ47.mjs +0 -16
- package/dist/lib/node-esm/chunk-SGZPTJ47.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-ZGPUV5VS.mjs.map +0 -7
- package/dist/lib/node-esm/intent-resolver-3QWXEBPX.mjs.map +0 -7
- package/dist/lib/node-esm/react-surface-3PNW7NDW.mjs.map +0 -7
- package/dist/types/src/components/AutomationContainer.d.ts +0 -5
- package/dist/types/src/components/AutomationContainer.d.ts.map +0 -1
- package/src/components/AutomationContainer.tsx +0 -30
- /package/dist/lib/browser/{AutomationPanel-ZWA6GOFY.mjs.map → AutomationPanel-LBXJDM6Z.mjs.map} +0 -0
- /package/dist/lib/browser/{FunctionsPanel-56ZKRVM5.mjs.map → FunctionsPanel-HFCK3JRB.mjs.map} +0 -0
- /package/dist/lib/{node-esm/AutomationPanel-YYUMSK2W.mjs.map → browser/hooks/index.mjs.map} +0 -0
- /package/dist/lib/node-esm/{FunctionsPanel-KGIOZSPZ.mjs.map → AutomationPanel-NVEIUIZP.mjs.map} +0 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AutomationCapabilities
|
|
3
|
+
} from "./chunk-GCGHLQM2.mjs";
|
|
4
|
+
import "./chunk-LZQFZO3B.mjs";
|
|
5
|
+
|
|
6
|
+
// src/capabilities/compute-runtime.ts
|
|
7
|
+
import * as Toolkit from "@effect/ai/Toolkit";
|
|
8
|
+
import * as BrowserKeyValueStore from "@effect/platform-browser/BrowserKeyValueStore";
|
|
9
|
+
import * as Effect from "effect/Effect";
|
|
10
|
+
import * as Layer from "effect/Layer";
|
|
11
|
+
import * as ManagedRuntime from "effect/ManagedRuntime";
|
|
12
|
+
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
13
|
+
import { makeToolExecutionServiceFromFunctions, makeToolResolverFromFunctions } from "@dxos/assistant";
|
|
14
|
+
import { Resource } from "@dxos/context";
|
|
15
|
+
import { Query, Ref } from "@dxos/echo";
|
|
16
|
+
import { CredentialsService, DatabaseService, FunctionImplementationResolver, FunctionInvocationService, InvocationTracer, LocalFunctionExecutionService, QueueService, RemoteFunctionExecutionService, TriggerDispatcher } from "@dxos/functions";
|
|
17
|
+
import { TriggerStateStore } from "@dxos/functions";
|
|
18
|
+
import { invariant } from "@dxos/invariant";
|
|
19
|
+
import { ClientCapabilities } from "@dxos/plugin-client";
|
|
20
|
+
import { PropertiesType } from "@dxos/react-client/echo";
|
|
21
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-automation/src/capabilities/compute-runtime.ts";
|
|
22
|
+
var compute_runtime_default = (async (context) => {
|
|
23
|
+
const provider = await new ComputeRuntimeProviderImpl(context).open();
|
|
24
|
+
return contributes(AutomationCapabilities.ComputeRuntime, provider, async () => {
|
|
25
|
+
await provider.close();
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var ComputeRuntimeProviderImpl = class extends Resource {
|
|
29
|
+
#runtimes = /* @__PURE__ */ new Map();
|
|
30
|
+
#context;
|
|
31
|
+
constructor(context) {
|
|
32
|
+
super();
|
|
33
|
+
this.#context = context;
|
|
34
|
+
}
|
|
35
|
+
async _open() {
|
|
36
|
+
}
|
|
37
|
+
async _close() {
|
|
38
|
+
await Promise.all(Array.from(this.#runtimes.values()).map((rt) => rt.dispose()));
|
|
39
|
+
this.#runtimes.clear();
|
|
40
|
+
}
|
|
41
|
+
getRuntime(spaceId) {
|
|
42
|
+
if (this.#runtimes.has(spaceId)) {
|
|
43
|
+
return this.#runtimes.get(spaceId);
|
|
44
|
+
}
|
|
45
|
+
const layer = Layer.unwrapEffect(Effect.gen(this, function* () {
|
|
46
|
+
const client = this.#context.getCapability(ClientCapabilities.Client);
|
|
47
|
+
const serviceLayer = this.#context.getCapability(Capabilities.AiServiceLayer) ?? Layer.die("AiService not found");
|
|
48
|
+
const functions = this.#context.getCapabilities(Capabilities.Functions);
|
|
49
|
+
const toolkits = this.#context.getCapabilities(Capabilities.Toolkit);
|
|
50
|
+
const handlers = this.#context.getCapabilities(Capabilities.ToolkitHandler);
|
|
51
|
+
const allFunctions = functions.flat();
|
|
52
|
+
const toolkit = Toolkit.merge(...toolkits);
|
|
53
|
+
const handlersLayer = Layer.mergeAll(Layer.empty, ...handlers);
|
|
54
|
+
const space = client.spaces.get(spaceId);
|
|
55
|
+
invariant(space, void 0, {
|
|
56
|
+
F: __dxlog_file,
|
|
57
|
+
L: 79,
|
|
58
|
+
S: this,
|
|
59
|
+
A: [
|
|
60
|
+
"space",
|
|
61
|
+
""
|
|
62
|
+
]
|
|
63
|
+
});
|
|
64
|
+
yield* Effect.promise(() => space.waitUntilReady());
|
|
65
|
+
return Layer.mergeAll(TriggerDispatcher.layer({
|
|
66
|
+
timeControl: "natural"
|
|
67
|
+
})).pipe(Layer.provideMerge(Layer.mergeAll(InvocationTracerLive, TriggerStateStore.layerKv.pipe(Layer.provide(BrowserKeyValueStore.layerLocalStorage)), makeToolResolverFromFunctions(allFunctions, toolkit), makeToolExecutionServiceFromFunctions(toolkit, handlersLayer))), Layer.provideMerge(Layer.mergeAll(FunctionInvocationService.layer.pipe(Layer.provideMerge(LocalFunctionExecutionService.layerLive.pipe(Layer.provideMerge(FunctionImplementationResolver.layerTest({
|
|
68
|
+
functions: allFunctions
|
|
69
|
+
})), Layer.provideMerge(RemoteFunctionExecutionService.fromClient(
|
|
70
|
+
client.edge.baseUrl,
|
|
71
|
+
// If agent is not enabled do not provide spaceId because space context will be unavailable on EDGE.
|
|
72
|
+
client.config.get("runtime.client.edgeFeatures.agents") ? spaceId : void 0
|
|
73
|
+
)), Layer.provideMerge(serviceLayer), Layer.provideMerge(CredentialsService.layerFromDatabase()), Layer.provideMerge(space ? DatabaseService.layer(space.db) : DatabaseService.notAvailable), Layer.provideMerge(space ? QueueService.layer(space.queues) : QueueService.notAvailable)))))));
|
|
74
|
+
}));
|
|
75
|
+
const runtime = ManagedRuntime.make(layer);
|
|
76
|
+
this.#runtimes.set(spaceId, runtime);
|
|
77
|
+
return runtime;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
var InvocationTracerLive = Layer.unwrapEffect(Effect.gen(function* () {
|
|
81
|
+
const { objects: [properties] } = yield* DatabaseService.runQuery(Query.type(PropertiesType));
|
|
82
|
+
invariant(properties, void 0, {
|
|
83
|
+
F: __dxlog_file,
|
|
84
|
+
L: 129,
|
|
85
|
+
S: this,
|
|
86
|
+
A: [
|
|
87
|
+
"properties",
|
|
88
|
+
""
|
|
89
|
+
]
|
|
90
|
+
});
|
|
91
|
+
if (!properties.invocationTraceQueue) {
|
|
92
|
+
const queue2 = yield* QueueService.createQueue({
|
|
93
|
+
subspaceTag: "trace"
|
|
94
|
+
});
|
|
95
|
+
properties.invocationTraceQueue = Ref.fromDXN(queue2.dxn);
|
|
96
|
+
}
|
|
97
|
+
const queue = properties.invocationTraceQueue.target;
|
|
98
|
+
invariant(queue, void 0, {
|
|
99
|
+
F: __dxlog_file,
|
|
100
|
+
L: 135,
|
|
101
|
+
S: this,
|
|
102
|
+
A: [
|
|
103
|
+
"queue",
|
|
104
|
+
""
|
|
105
|
+
]
|
|
106
|
+
});
|
|
107
|
+
return InvocationTracer.layerLive({
|
|
108
|
+
invocationTraceQueue: queue
|
|
109
|
+
});
|
|
110
|
+
}));
|
|
111
|
+
export {
|
|
112
|
+
compute_runtime_default as default
|
|
113
|
+
};
|
|
114
|
+
//# sourceMappingURL=compute-runtime-PFYRMGN2.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/compute-runtime.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Toolkit from '@effect/ai/Toolkit';\nimport * as BrowserKeyValueStore from '@effect/platform-browser/BrowserKeyValueStore';\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\nimport * as ManagedRuntime from 'effect/ManagedRuntime';\n\nimport { Capabilities, type PluginContext, contributes } from '@dxos/app-framework';\nimport { makeToolExecutionServiceFromFunctions, makeToolResolverFromFunctions } from '@dxos/assistant';\nimport { Resource } from '@dxos/context';\nimport { Query, Ref } from '@dxos/echo';\nimport {\n CredentialsService,\n DatabaseService,\n FunctionImplementationResolver,\n FunctionInvocationService,\n InvocationTracer,\n LocalFunctionExecutionService,\n QueueService,\n RemoteFunctionExecutionService,\n TriggerDispatcher,\n} from '@dxos/functions';\nimport { TriggerStateStore } from '@dxos/functions';\nimport { invariant } from '@dxos/invariant';\nimport { type SpaceId } from '@dxos/keys';\nimport { ClientCapabilities } from '@dxos/plugin-client';\nimport { PropertiesType } from '@dxos/react-client/echo';\n\nimport { AutomationCapabilities } from './capabilities';\n\nexport default async (context: PluginContext) => {\n const provider = await new ComputeRuntimeProviderImpl(context).open();\n return contributes(AutomationCapabilities.ComputeRuntime, provider, async () => {\n await provider.close();\n });\n};\n\nclass ComputeRuntimeProviderImpl extends Resource implements AutomationCapabilities.ComputeRuntimeProvider {\n readonly #runtimes = new Map<SpaceId, AutomationCapabilities.ComputeRuntime>();\n readonly #context: PluginContext;\n\n constructor(context: PluginContext) {\n super();\n this.#context = context;\n }\n\n protected override async _open() {}\n\n protected override async _close() {\n await Promise.all(Array.from(this.#runtimes.values()).map((rt) => rt.dispose()));\n this.#runtimes.clear();\n }\n\n getRuntime(spaceId: SpaceId): AutomationCapabilities.ComputeRuntime {\n if (this.#runtimes.has(spaceId)) {\n return this.#runtimes.get(spaceId)!;\n }\n\n const layer = Layer.unwrapEffect(\n Effect.gen(this, function* () {\n const client = this.#context.getCapability(ClientCapabilities.Client);\n const serviceLayer =\n this.#context.getCapability(Capabilities.AiServiceLayer) ?? Layer.die('AiService not found');\n\n // TODO(dmaretskyi): Make those reactive.\n const functions = this.#context.getCapabilities(Capabilities.Functions);\n const toolkits = this.#context.getCapabilities(Capabilities.Toolkit);\n const handlers = this.#context.getCapabilities(Capabilities.ToolkitHandler);\n\n const allFunctions = functions.flat();\n // TODO(wittjosiah): Don't cast.\n const toolkit = Toolkit.merge(...toolkits) as Toolkit.Toolkit<any>;\n const handlersLayer = Layer.mergeAll(Layer.empty, ...handlers);\n\n const space = client.spaces.get(spaceId);\n invariant(space);\n yield* Effect.promise(() => space.waitUntilReady());\n\n return Layer.mergeAll(TriggerDispatcher.layer({ timeControl: 'natural' })).pipe(\n Layer.provideMerge(\n Layer.mergeAll(\n InvocationTracerLive,\n TriggerStateStore.layerKv.pipe(Layer.provide(BrowserKeyValueStore.layerLocalStorage)),\n makeToolResolverFromFunctions(allFunctions, toolkit),\n makeToolExecutionServiceFromFunctions(toolkit, handlersLayer),\n ),\n ),\n Layer.provideMerge(\n Layer.mergeAll(\n FunctionInvocationService.layer.pipe(\n Layer.provideMerge(\n LocalFunctionExecutionService.layerLive.pipe(\n Layer.provideMerge(FunctionImplementationResolver.layerTest({ functions: allFunctions })),\n Layer.provideMerge(\n RemoteFunctionExecutionService.fromClient(\n client.edge.baseUrl,\n // If agent is not enabled do not provide spaceId because space context will be unavailable on EDGE.\n client.config.get('runtime.client.edgeFeatures.agents') ? spaceId : undefined,\n ),\n ),\n Layer.provideMerge(serviceLayer),\n Layer.provideMerge(CredentialsService.layerFromDatabase()),\n Layer.provideMerge(space ? DatabaseService.layer(space.db) : DatabaseService.notAvailable),\n Layer.provideMerge(space ? QueueService.layer(space.queues) : QueueService.notAvailable),\n ),\n ),\n ),\n ),\n ),\n );\n }),\n );\n\n const runtime = ManagedRuntime.make(layer);\n this.#runtimes.set(spaceId, runtime);\n\n return runtime;\n }\n}\n\nconst InvocationTracerLive = Layer.unwrapEffect(\n Effect.gen(function* () {\n const {\n objects: [properties],\n } = yield* DatabaseService.runQuery(Query.type(PropertiesType));\n invariant(properties);\n if (!properties.invocationTraceQueue) {\n const queue = yield* QueueService.createQueue({ subspaceTag: 'trace' });\n properties.invocationTraceQueue = Ref.fromDXN(queue.dxn);\n }\n const queue = properties.invocationTraceQueue.target;\n invariant(queue);\n return InvocationTracer.layerLive({ invocationTraceQueue: queue });\n }),\n);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Toolkit", "BrowserKeyValueStore", "Effect", "Layer", "ManagedRuntime", "Capabilities", "contributes", "makeToolExecutionServiceFromFunctions", "makeToolResolverFromFunctions", "Resource", "Query", "Ref", "CredentialsService", "DatabaseService", "FunctionImplementationResolver", "FunctionInvocationService", "InvocationTracer", "LocalFunctionExecutionService", "QueueService", "RemoteFunctionExecutionService", "TriggerDispatcher", "TriggerStateStore", "invariant", "ClientCapabilities", "PropertiesType", "context", "provider", "ComputeRuntimeProviderImpl", "open", "contributes", "AutomationCapabilities", "ComputeRuntime", "close", "Resource", "Map", "_open", "_close", "Promise", "all", "Array", "from", "values", "map", "rt", "dispose", "clear", "getRuntime", "spaceId", "has", "get", "layer", "unwrapEffect", "gen", "client", "getCapability", "ClientCapabilities", "Client", "serviceLayer", "Capabilities", "AiServiceLayer", "die", "functions", "getCapabilities", "Functions", "toolkits", "Toolkit", "handlers", "ToolkitHandler", "allFunctions", "flat", "toolkit", "merge", "handlersLayer", "mergeAll", "empty", "space", "spaces", "invariant", "promise", "waitUntilReady", "TriggerDispatcher", "timeControl", "pipe", "provideMerge", "InvocationTracerLive", "TriggerStateStore", "layerKv", "provide", "layerLocalStorage", "makeToolResolverFromFunctions", "makeToolExecutionServiceFromFunctions", "FunctionInvocationService", "LocalFunctionExecutionService", "layerLive", "FunctionImplementationResolver", "layerTest", "RemoteFunctionExecutionService", "fromClient", "edge", "baseUrl", "config", "undefined", "CredentialsService", "layerFromDatabase", "DatabaseService", "db", "notAvailable", "QueueService", "queues", "runtime", "make", "set", "objects", "properties", "runQuery", "Query", "type", "PropertiesType", "invocationTraceQueue", "queue", "createQueue", "subspaceTag", "Ref", "fromDXN", "dxn", "target", "InvocationTracer"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import {
|
|
2
|
+
useComputeRuntimeCallback,
|
|
3
|
+
useTriggerRuntimeControls
|
|
4
|
+
} from "../chunk-CVYJM6OO.mjs";
|
|
5
|
+
import "../chunk-GCGHLQM2.mjs";
|
|
6
|
+
import "../chunk-LZQFZO3B.mjs";
|
|
7
|
+
export {
|
|
8
|
+
useComputeRuntimeCallback,
|
|
9
|
+
useTriggerRuntimeControls
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,28 +1,39 @@
|
|
|
1
1
|
import {
|
|
2
|
-
AutomationContainer,
|
|
3
2
|
AutomationPanel,
|
|
3
|
+
AutomationSettings,
|
|
4
4
|
FunctionsContainer,
|
|
5
5
|
FunctionsPanel
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-XXZNGORC.mjs";
|
|
7
|
+
import {
|
|
8
|
+
AppGraphBuilder,
|
|
9
|
+
ComputeRuntime,
|
|
10
|
+
IntentResolver,
|
|
11
|
+
ReactSurface,
|
|
12
|
+
useComputeRuntimeCallback,
|
|
13
|
+
useTriggerRuntimeControls
|
|
14
|
+
} from "./chunk-CVYJM6OO.mjs";
|
|
15
|
+
import {
|
|
16
|
+
AutomationCapabilities
|
|
17
|
+
} from "./chunk-GCGHLQM2.mjs";
|
|
7
18
|
import {
|
|
8
19
|
TriggerEditor
|
|
9
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-JW7XSPYW.mjs";
|
|
10
21
|
import {
|
|
11
|
-
AUTOMATION_PLUGIN,
|
|
12
22
|
meta
|
|
13
|
-
} from "./chunk-
|
|
23
|
+
} from "./chunk-LZQFZO3B.mjs";
|
|
24
|
+
|
|
25
|
+
// src/events.ts
|
|
26
|
+
import { defineEvent } from "@dxos/app-framework";
|
|
27
|
+
(function(AutomationEvents2) {
|
|
28
|
+
AutomationEvents2.ComputeRuntimeReady = defineEvent(`${meta.id}/event/compute-runtime-ready`);
|
|
29
|
+
})(AutomationEvents || (AutomationEvents = {}));
|
|
30
|
+
var AutomationEvents;
|
|
14
31
|
|
|
15
32
|
// src/AutomationPlugin.tsx
|
|
16
|
-
import { Capabilities, contributes, defineModule, definePlugin
|
|
17
|
-
import {
|
|
33
|
+
import { Capabilities, Events, contributes, defineModule, definePlugin } from "@dxos/app-framework";
|
|
34
|
+
import { Function, Trigger } from "@dxos/functions";
|
|
18
35
|
import { ClientCapabilities, ClientEvents } from "@dxos/plugin-client";
|
|
19
36
|
|
|
20
|
-
// src/capabilities/index.ts
|
|
21
|
-
import { lazy } from "@dxos/app-framework";
|
|
22
|
-
var AppGraphBuilder = lazy(() => import("./app-graph-builder-ZTAUTFI4.mjs"));
|
|
23
|
-
var IntentResolver = lazy(() => import("./intent-resolver-U3ZAQEFW.mjs"));
|
|
24
|
-
var ReactSurface = lazy(() => import("./react-surface-4DFSM7OX.mjs"));
|
|
25
|
-
|
|
26
37
|
// src/translations.ts
|
|
27
38
|
var translations = [
|
|
28
39
|
{
|
|
@@ -33,12 +44,15 @@ var translations = [
|
|
|
33
44
|
"script automation label": "Automation",
|
|
34
45
|
"automation verbose label": "Manage automations",
|
|
35
46
|
"automation description": "You can manage all the triggers which automate your space here.",
|
|
47
|
+
"runtime label": "Enable Local Runtime",
|
|
48
|
+
"runtime description": "This will start a trigger dispatcher locally for this space to run triggers on your device while Composer is running.",
|
|
36
49
|
"functions panel label": "Functions",
|
|
37
50
|
"functions verbose label": "Manage deployed functions",
|
|
38
51
|
"functions description": "You can manage all the functions deployed from your space on EDGE here.",
|
|
39
52
|
"function copy id": "Copy Function ID",
|
|
40
53
|
"no functions found": "No functions found",
|
|
41
54
|
"go to function source button label": "Show function source",
|
|
55
|
+
"delete function button label": "Delete function",
|
|
42
56
|
"trigger editor title": "Configure Trigger",
|
|
43
57
|
"new trigger label": "Add Trigger",
|
|
44
58
|
"trigger type timer": "Timer",
|
|
@@ -58,7 +72,7 @@ var translations = [
|
|
|
58
72
|
];
|
|
59
73
|
|
|
60
74
|
// src/AutomationPlugin.tsx
|
|
61
|
-
var AutomationPlugin = () =>
|
|
75
|
+
var AutomationPlugin = definePlugin(meta, () => [
|
|
62
76
|
defineModule({
|
|
63
77
|
id: `${meta.id}/module/translations`,
|
|
64
78
|
activatesOn: Events.SetupTranslations,
|
|
@@ -68,8 +82,8 @@ var AutomationPlugin = () => definePlugin(meta, [
|
|
|
68
82
|
id: `${meta.id}/module/schema`,
|
|
69
83
|
activatesOn: ClientEvents.SetupSchema,
|
|
70
84
|
activate: () => contributes(ClientCapabilities.Schema, [
|
|
71
|
-
|
|
72
|
-
|
|
85
|
+
Function.Function,
|
|
86
|
+
Trigger.Trigger
|
|
73
87
|
])
|
|
74
88
|
}),
|
|
75
89
|
defineModule({
|
|
@@ -86,16 +100,27 @@ var AutomationPlugin = () => definePlugin(meta, [
|
|
|
86
100
|
id: `${meta.id}/module/react-surface`,
|
|
87
101
|
activatesOn: Events.SetupReactSurface,
|
|
88
102
|
activate: ReactSurface
|
|
103
|
+
}),
|
|
104
|
+
defineModule({
|
|
105
|
+
id: `${meta.id}/module/compute-runtime`,
|
|
106
|
+
activatesOn: ClientEvents.ClientReady,
|
|
107
|
+
activatesAfter: [
|
|
108
|
+
AutomationEvents.ComputeRuntimeReady
|
|
109
|
+
],
|
|
110
|
+
activate: ComputeRuntime
|
|
89
111
|
})
|
|
90
112
|
]);
|
|
91
113
|
export {
|
|
92
|
-
|
|
93
|
-
|
|
114
|
+
AutomationCapabilities,
|
|
115
|
+
AutomationEvents,
|
|
94
116
|
AutomationPanel,
|
|
95
117
|
AutomationPlugin,
|
|
118
|
+
AutomationSettings,
|
|
96
119
|
FunctionsContainer,
|
|
97
120
|
FunctionsPanel,
|
|
98
121
|
TriggerEditor,
|
|
99
|
-
meta
|
|
122
|
+
meta,
|
|
123
|
+
useComputeRuntimeCallback,
|
|
124
|
+
useTriggerRuntimeControls
|
|
100
125
|
};
|
|
101
126
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../../../src/
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, defineModule, definePlugin
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["
|
|
3
|
+
"sources": ["../../../src/events.ts", "../../../src/AutomationPlugin.tsx", "../../../src/translations.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { defineEvent } from '@dxos/app-framework';\n\nimport { meta } from './meta';\n\nexport namespace AutomationEvents {\n export const ComputeRuntimeReady = defineEvent(`${meta.id}/event/compute-runtime-ready`);\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, Events, contributes, defineModule, definePlugin } from '@dxos/app-framework';\nimport { Function, Trigger } from '@dxos/functions';\nimport { ClientCapabilities, ClientEvents } from '@dxos/plugin-client';\n\nimport { AppGraphBuilder, ComputeRuntime, IntentResolver, ReactSurface } from './capabilities';\nimport { AutomationEvents } from './events';\nimport { meta } from './meta';\nimport { translations } from './translations';\n\nexport const AutomationPlugin = definePlugin(meta, () => [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/schema`,\n activatesOn: ClientEvents.SetupSchema,\n activate: () => contributes(ClientCapabilities.Schema, [Function.Function, Trigger.Trigger]),\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/compute-runtime`,\n activatesOn: ClientEvents.ClientReady,\n activatesAfter: [AutomationEvents.ComputeRuntimeReady],\n activate: ComputeRuntime,\n }),\n]);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Resource } from '@dxos/react-ui';\n\nimport { meta } from './meta';\n\nexport const translations = [\n {\n 'en-US': {\n [meta.id]: {\n 'plugin name': 'Automation',\n 'automation panel label': 'Automations',\n 'script automation label': 'Automation',\n 'automation verbose label': 'Manage automations',\n 'automation description': 'You can manage all the triggers which automate your space here.',\n\n 'runtime label': 'Enable Local Runtime',\n 'runtime description':\n 'This will start a trigger dispatcher locally for this space to run triggers on your device while Composer is running.',\n\n 'functions panel label': 'Functions',\n 'functions verbose label': 'Manage deployed functions',\n 'functions description': 'You can manage all the functions deployed from your space on EDGE here.',\n 'function copy id': 'Copy Function ID',\n 'no functions found': 'No functions found',\n 'go to function source button label': 'Show function source',\n 'delete function button label': 'Delete function',\n\n 'trigger editor title': 'Configure Trigger',\n 'new trigger label': 'Add Trigger',\n 'trigger type timer': 'Timer',\n 'trigger type webhook': 'Webhook',\n 'trigger type websocket': 'Websocket',\n 'trigger type subscription': 'Subscription',\n 'trigger type email': 'Email',\n 'trigger type queue': 'Queue',\n\n 'trigger copy url': 'Copy URL',\n 'trigger copy email': 'Copy Email',\n\n 'trigger payload add': 'Add',\n 'trigger payload remove': 'Remove',\n 'trigger payload prop name placeholder': 'New payload property name',\n },\n },\n },\n] as const satisfies Resource[];\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;AAIA,SAASA,mBAAmB;UAIXC,mBAAAA;oBACFC,sBAAsBC,YAAY,GAAGC,KAAKC,EAAE,8BAA8B;AACzF,GAFiBJ,qBAAAA,mBAAAA,CAAAA,EAAAA;;;;ACJjB,SAASK,cAAcC,QAAQC,aAAaC,cAAcC,oBAAoB;AAC9E,SAASC,UAAUC,eAAe;AAClC,SAASC,oBAAoBC,oBAAoB;;;ACE1C,IAAMC,eAAe;EAC1B;IACE,SAAS;MACP,CAACC,KAAKC,EAAE,GAAG;QACT,eAAe;QACf,0BAA0B;QAC1B,2BAA2B;QAC3B,4BAA4B;QAC5B,0BAA0B;QAE1B,iBAAiB;QACjB,uBACE;QAEF,yBAAyB;QACzB,2BAA2B;QAC3B,yBAAyB;QACzB,oBAAoB;QACpB,sBAAsB;QACtB,sCAAsC;QACtC,gCAAgC;QAEhC,wBAAwB;QACxB,qBAAqB;QACrB,sBAAsB;QACtB,wBAAwB;QACxB,0BAA0B;QAC1B,6BAA6B;QAC7B,sBAAsB;QACtB,sBAAsB;QAEtB,oBAAoB;QACpB,sBAAsB;QAEtB,uBAAuB;QACvB,0BAA0B;QAC1B,yCAAyC;MAC3C;IACF;EACF;;;;ADlCK,IAAMC,mBAAmBC,aAAaC,MAAM,MAAM;EACvDC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAcC,YAAAA;EACzD,CAAA;EACAT,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaQ,aAAaC;IAC1BN,UAAU,MAAMC,YAAYM,mBAAmBC,QAAQ;MAACC,SAASA;MAAUC,QAAQA;KAAQ;EAC7F,CAAA;EACAf,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOa;IACpBX,UAAUY;EACZ,CAAA;EACAjB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOe;IACpBb,UAAUc;EACZ,CAAA;EACAnB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOiB;IACpBf,UAAUgB;EACZ,CAAA;EACArB,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaQ,aAAaY;IAC1BC,gBAAgB;MAACC,iBAAiBC;;IAClCpB,UAAUqB;EACZ,CAAA;CACD;",
|
|
6
|
+
"names": ["defineEvent", "AutomationEvents", "ComputeRuntimeReady", "defineEvent", "meta", "id", "Capabilities", "Events", "contributes", "defineModule", "definePlugin", "Function", "Trigger", "ClientCapabilities", "ClientEvents", "translations", "meta", "id", "AutomationPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "ClientEvents", "SetupSchema", "ClientCapabilities", "Schema", "Function", "Trigger", "SetupAppGraph", "AppGraphBuilder", "SetupIntentResolver", "IntentResolver", "SetupReactSurface", "ReactSurface", "ClientReady", "activatesAfter", "AutomationEvents", "ComputeRuntimeReady", "ComputeRuntime"]
|
|
7
7
|
}
|
|
@@ -1,29 +1,29 @@
|
|
|
1
1
|
import {
|
|
2
2
|
AutomationAction
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-
|
|
3
|
+
} from "./chunk-YBPJCY3F.mjs";
|
|
4
|
+
import "./chunk-LZQFZO3B.mjs";
|
|
5
5
|
|
|
6
6
|
// src/capabilities/intent-resolver.ts
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
7
|
+
import { Capabilities, LayoutAction, contributes, createIntent, createResolver } from "@dxos/app-framework";
|
|
8
|
+
import { Ref } from "@dxos/echo";
|
|
9
|
+
import { Function, Script, Trigger } from "@dxos/functions";
|
|
10
10
|
import { ATTENDABLE_PATH_SEPARATOR } from "@dxos/plugin-deck/types";
|
|
11
11
|
import { SpaceAction } from "@dxos/plugin-space/types";
|
|
12
12
|
import { Filter } from "@dxos/react-client/echo";
|
|
13
|
-
var intent_resolver_default = (context) => contributes(Capabilities.IntentResolver, [
|
|
13
|
+
var intent_resolver_default = ((context) => contributes(Capabilities.IntentResolver, [
|
|
14
14
|
createResolver({
|
|
15
15
|
intent: AutomationAction.CreateTriggerFromTemplate,
|
|
16
16
|
resolve: async ({ space, template, enabled = false, scriptName, input }) => {
|
|
17
|
-
const trigger =
|
|
17
|
+
const trigger = Trigger.make({
|
|
18
18
|
enabled,
|
|
19
19
|
input
|
|
20
20
|
});
|
|
21
21
|
if (scriptName) {
|
|
22
|
-
const { objects: [script] } = await space.db.query(Filter.type(
|
|
22
|
+
const { objects: [script] } = await space.db.query(Filter.type(Script.Script, {
|
|
23
23
|
name: scriptName
|
|
24
24
|
})).run();
|
|
25
25
|
if (script) {
|
|
26
|
-
const { objects: [fn] } = await space.db.query(Filter.type(
|
|
26
|
+
const { objects: [fn] } = await space.db.query(Filter.type(Function.Function, {
|
|
27
27
|
source: Ref.make(script)
|
|
28
28
|
})).run();
|
|
29
29
|
if (fn) {
|
|
@@ -34,14 +34,14 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
34
34
|
switch (template.type) {
|
|
35
35
|
case "timer": {
|
|
36
36
|
trigger.spec = {
|
|
37
|
-
kind:
|
|
37
|
+
kind: "timer",
|
|
38
38
|
cron: template.cron
|
|
39
39
|
};
|
|
40
40
|
break;
|
|
41
41
|
}
|
|
42
42
|
case "queue": {
|
|
43
43
|
trigger.spec = {
|
|
44
|
-
kind:
|
|
44
|
+
kind: "queue",
|
|
45
45
|
queue: template.queueDXN.toString()
|
|
46
46
|
};
|
|
47
47
|
break;
|
|
@@ -54,7 +54,8 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
54
54
|
intents: [
|
|
55
55
|
createIntent(SpaceAction.AddObject, {
|
|
56
56
|
object: trigger,
|
|
57
|
-
target: space
|
|
57
|
+
target: space,
|
|
58
|
+
hidden: true
|
|
58
59
|
}),
|
|
59
60
|
createIntent(LayoutAction.Open, {
|
|
60
61
|
part: "main",
|
|
@@ -69,8 +70,8 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
69
70
|
};
|
|
70
71
|
}
|
|
71
72
|
})
|
|
72
|
-
]);
|
|
73
|
+
]));
|
|
73
74
|
export {
|
|
74
75
|
intent_resolver_default as default
|
|
75
76
|
};
|
|
76
|
-
//# sourceMappingURL=intent-resolver-
|
|
77
|
+
//# sourceMappingURL=intent-resolver-5HR7M7T6.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/intent-resolver.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n LayoutAction,\n type PluginContext,\n contributes,\n createIntent,\n createResolver,\n} from '@dxos/app-framework';\nimport { Ref } from '@dxos/echo';\nimport { Function, Script, Trigger } from '@dxos/functions';\nimport { type DXN } from '@dxos/keys';\nimport { ATTENDABLE_PATH_SEPARATOR } from '@dxos/plugin-deck/types';\nimport { SpaceAction } from '@dxos/plugin-space/types';\nimport { Filter } from '@dxos/react-client/echo';\n\nimport { AutomationAction } from '../types';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: AutomationAction.CreateTriggerFromTemplate,\n resolve: async ({ space, template, enabled = false, scriptName, input }) => {\n const trigger = Trigger.make({ enabled, input });\n\n // TODO(wittjosiah): Factor out function lookup by script name?\n if (scriptName) {\n const {\n objects: [script],\n } = await space.db.query(Filter.type(Script.Script, { name: scriptName })).run();\n if (script) {\n const {\n objects: [fn],\n } = await space.db.query(Filter.type(Function.Function, { source: Ref.make(script) })).run();\n if (fn) {\n trigger.function = Ref.make(fn);\n }\n }\n }\n\n switch (template.type) {\n case 'timer': {\n trigger.spec = { kind: 'timer', cron: template.cron };\n break;\n }\n case 'queue': {\n trigger.spec = { kind: 'queue', queue: (template.queueDXN as DXN).toString() };\n break;\n }\n default: {\n break;\n }\n }\n\n return {\n intents: [\n createIntent(SpaceAction.AddObject, { object: trigger, target: space, hidden: true }),\n createIntent(LayoutAction.Open, {\n part: 'main',\n subject: [`automation-settings${ATTENDABLE_PATH_SEPARATOR}${space.id}`],\n options: {\n workspace: space.id,\n },\n }),\n ],\n };\n },\n }),\n ]);\n"],
|
|
5
|
+
"mappings": ";;;;;;AAIA,SACEA,cACAC,cAEAC,aACAC,cACAC,sBACK;AACP,SAASC,WAAW;AACpB,SAASC,UAAUC,QAAQC,eAAe;AAE1C,SAASC,iCAAiC;AAC1C,SAASC,mBAAmB;AAC5B,SAASC,cAAc;AAIvB,IAAA,2BAAe,CAACC,YACdC,YAAYC,aAAaC,gBAAgB;EACvCC,eAAe;IACbC,QAAQC,iBAAiBC;IACzBC,SAAS,OAAO,EAAEC,OAAOC,UAAUC,UAAU,OAAOC,YAAYC,MAAK,MAAE;AACrE,YAAMC,UAAUC,QAAQC,KAAK;QAAEL;QAASE;MAAM,CAAA;AAG9C,UAAID,YAAY;AACd,cAAM,EACJK,SAAS,CAACC,MAAAA,EAAO,IACf,MAAMT,MAAMU,GAAGC,MAAMC,OAAOC,KAAKC,OAAOA,QAAQ;UAAEC,MAAMZ;QAAW,CAAA,CAAA,EAAIa,IAAG;AAC9E,YAAIP,QAAQ;AACV,gBAAM,EACJD,SAAS,CAACS,EAAAA,EAAG,IACX,MAAMjB,MAAMU,GAAGC,MAAMC,OAAOC,KAAKK,SAASA,UAAU;YAAEC,QAAQC,IAAIb,KAAKE,MAAAA;UAAQ,CAAA,CAAA,EAAIO,IAAG;AAC1F,cAAIC,IAAI;AACNZ,oBAAQgB,WAAWD,IAAIb,KAAKU,EAAAA;UAC9B;QACF;MACF;AAEA,cAAQhB,SAASY,MAAI;QACnB,KAAK,SAAS;AACZR,kBAAQiB,OAAO;YAAEC,MAAM;YAASC,MAAMvB,SAASuB;UAAK;AACpD;QACF;QACA,KAAK,SAAS;AACZnB,kBAAQiB,OAAO;YAAEC,MAAM;YAASE,OAAQxB,SAASyB,SAAiBC,SAAQ;UAAG;AAC7E;QACF;QACA,SAAS;AACP;QACF;MACF;AAEA,aAAO;QACLC,SAAS;UACPC,aAAaC,YAAYC,WAAW;YAAEC,QAAQ3B;YAAS4B,QAAQjC;YAAOkC,QAAQ;UAAK,CAAA;UACnFL,aAAaM,aAAaC,MAAM;YAC9BC,MAAM;YACNC,SAAS;cAAC,sBAAsBC,yBAAAA,GAA4BvC,MAAMwC,EAAE;;YACpEC,SAAS;cACPC,WAAW1C,MAAMwC;YACnB;UACF,CAAA;;MAEJ;IACF;EACF,CAAA;CACD;",
|
|
6
|
+
"names": ["Capabilities", "LayoutAction", "contributes", "createIntent", "createResolver", "Ref", "Function", "Script", "Trigger", "ATTENDABLE_PATH_SEPARATOR", "SpaceAction", "Filter", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "AutomationAction", "CreateTriggerFromTemplate", "resolve", "space", "template", "enabled", "scriptName", "input", "trigger", "Trigger", "make", "objects", "script", "db", "query", "Filter", "type", "Script", "name", "run", "fn", "Function", "source", "Ref", "function", "spec", "kind", "cron", "queue", "queueDXN", "toString", "intents", "createIntent", "SpaceAction", "AddObject", "object", "target", "hidden", "LayoutAction", "Open", "part", "subject", "ATTENDABLE_PATH_SEPARATOR", "id", "options", "workspace"]
|
|
7
|
+
}
|