@dxos/plugin-automation 0.8.4-main.422d1c7879 → 0.8.4-main.4f23b4e393
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/neutral/AutomationPanel-HI63JQ2X.mjs +11 -0
- package/dist/lib/neutral/AutomationPlugin.mjs +38 -0
- package/dist/lib/neutral/AutomationPlugin.mjs.map +7 -0
- package/dist/lib/{browser/cli/index.mjs → neutral/AutomationPlugin.node.mjs} +77 -75
- package/dist/lib/neutral/AutomationPlugin.node.mjs.map +7 -0
- package/dist/lib/neutral/AutomationSettings-LM5GSR4H.mjs +31 -0
- package/dist/lib/neutral/AutomationSettings-LM5GSR4H.mjs.map +7 -0
- package/dist/lib/neutral/FunctionsContainer-SR6DHMF6.mjs +38 -0
- package/dist/lib/neutral/FunctionsContainer-SR6DHMF6.mjs.map +7 -0
- package/dist/lib/neutral/FunctionsPanel-SVRKRUXZ.mjs +97 -0
- package/dist/lib/neutral/FunctionsPanel-SVRKRUXZ.mjs.map +7 -0
- package/dist/lib/neutral/FunctionsRegistry-Z2B5MUD3.mjs +95 -0
- package/dist/lib/neutral/FunctionsRegistry-Z2B5MUD3.mjs.map +7 -0
- package/dist/lib/neutral/TriggerSettings-XCHIZPOR.mjs +9 -0
- package/dist/lib/neutral/app-graph-builder-GDCGRYEP.mjs +75 -0
- package/dist/lib/neutral/app-graph-builder-GDCGRYEP.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/index.mjs +15 -0
- package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
- package/dist/lib/neutral/capabilities/node.mjs +13 -0
- package/dist/lib/neutral/capabilities/node.mjs.map +7 -0
- package/dist/lib/neutral/chunk-2JP77CMN.mjs +42 -0
- package/dist/lib/neutral/chunk-2JP77CMN.mjs.map +7 -0
- package/dist/lib/neutral/chunk-6CKX6RIL.mjs +270 -0
- package/dist/lib/neutral/chunk-6CKX6RIL.mjs.map +7 -0
- package/dist/lib/neutral/chunk-ATECY555.mjs +20 -0
- package/dist/lib/neutral/chunk-ATECY555.mjs.map +7 -0
- package/dist/lib/neutral/chunk-DSCOLDT5.mjs +93 -0
- package/dist/lib/neutral/chunk-DSCOLDT5.mjs.map +7 -0
- package/dist/lib/neutral/chunk-K3C5ZTZA.mjs +285 -0
- package/dist/lib/neutral/chunk-K3C5ZTZA.mjs.map +7 -0
- package/dist/lib/neutral/chunk-M3TIHFXN.mjs +8 -0
- package/dist/lib/neutral/chunk-M3TIHFXN.mjs.map +7 -0
- package/dist/lib/neutral/chunk-UUC257FA.mjs +12 -0
- package/dist/lib/neutral/chunk-UUC257FA.mjs.map +7 -0
- package/dist/lib/neutral/components/index.mjs +16 -0
- package/dist/lib/neutral/compute-runtime-42CP6VG5.mjs +220 -0
- package/dist/lib/neutral/compute-runtime-42CP6VG5.mjs.map +7 -0
- package/dist/lib/neutral/containers/index.mjs +13 -0
- package/dist/lib/neutral/containers/index.mjs.map +7 -0
- package/dist/lib/{browser/create-trigger-from-template-NH5EL6LB.mjs → neutral/create-trigger-from-template-7K3OYOHQ.mjs} +10 -13
- package/dist/lib/neutral/create-trigger-from-template-7K3OYOHQ.mjs.map +7 -0
- package/dist/lib/{browser → neutral}/hooks/index.mjs +59 -17
- package/dist/lib/neutral/hooks/index.mjs.map +7 -0
- package/dist/lib/neutral/index.mjs +20 -0
- package/dist/lib/neutral/index.mjs.map +7 -0
- package/dist/lib/neutral/meta.json +1 -0
- package/dist/lib/neutral/meta.mjs +8 -0
- package/dist/lib/neutral/meta.mjs.map +7 -0
- package/dist/lib/neutral/operation-handler-YXGYH5W5.mjs +13 -0
- package/dist/lib/neutral/operation-handler-YXGYH5W5.mjs.map +7 -0
- package/dist/lib/neutral/operations/index.mjs +8 -0
- package/dist/lib/neutral/operations/index.mjs.map +7 -0
- package/dist/lib/neutral/plugin.mjs +16 -0
- package/dist/lib/neutral/plugin.mjs.map +7 -0
- package/dist/lib/neutral/react-surface-3OGMAMKV.mjs +57 -0
- package/dist/lib/neutral/react-surface-3OGMAMKV.mjs.map +7 -0
- package/dist/lib/neutral/translations.mjs +47 -0
- package/dist/lib/neutral/translations.mjs.map +7 -0
- package/dist/lib/neutral/types/index.mjs +16 -0
- package/dist/lib/neutral/types/index.mjs.map +7 -0
- package/dist/types/src/AutomationPlugin.d.ts +1 -0
- package/dist/types/src/AutomationPlugin.d.ts.map +1 -1
- package/dist/types/src/{cli/plugin.d.ts → AutomationPlugin.node.d.ts} +2 -1
- package/dist/types/src/AutomationPlugin.node.d.ts.map +1 -0
- package/dist/types/src/AutomationPlugin.test.d.ts +2 -0
- package/dist/types/src/AutomationPlugin.test.d.ts.map +1 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/compute-runtime.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +2 -2
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/node.d.ts +4 -1
- package/dist/types/src/capabilities/node.d.ts.map +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
- package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/commands/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/trigger/create/index.d.ts +6 -6
- package/dist/types/src/commands/trigger/create/index.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/trigger/create/queue.d.ts +1 -1
- package/dist/types/src/commands/trigger/create/queue.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/trigger/create/subscription.d.ts +1 -1
- package/dist/types/src/commands/trigger/create/subscription.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/trigger/create/timer.d.ts +1 -1
- package/dist/types/src/commands/trigger/create/timer.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/trigger/index.d.ts +7 -7
- package/dist/types/src/commands/trigger/index.d.ts.map +1 -0
- package/dist/types/src/commands/trigger/list.d.ts.map +1 -0
- package/dist/types/src/commands/trigger/options.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/trigger/remove.d.ts +1 -1
- package/dist/types/src/commands/trigger/remove.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/trigger/update/index.d.ts +5 -5
- package/dist/types/src/commands/trigger/update/index.d.ts.map +1 -0
- package/dist/types/src/commands/trigger/update/queue.d.ts.map +1 -0
- package/dist/types/src/commands/trigger/update/subscription.d.ts.map +1 -0
- package/dist/types/src/commands/trigger/update/timer.d.ts.map +1 -0
- package/dist/types/src/{cli/commands → commands}/trigger/util.d.ts +2 -2
- package/dist/types/src/commands/trigger/util.d.ts.map +1 -0
- package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts +1 -1
- package/dist/types/src/components/AutomationPanel/AutomationPanel.d.ts.map +1 -1
- package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts +32 -32
- package/dist/types/src/components/AutomationPanel/AutomationPanel.stories.d.ts.map +1 -1
- package/dist/types/src/components/AutomationPanel/index.d.ts.map +1 -1
- package/dist/types/src/components/FunctionsPanel/FunctionsPanel.d.ts.map +1 -1
- package/dist/types/src/components/FunctionsPanel/index.d.ts.map +1 -1
- package/dist/types/src/components/FunctionsRegistry/FunctionsRegistry.d.ts.map +1 -1
- package/dist/types/src/components/FunctionsRegistry/index.d.ts.map +1 -1
- package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts +5 -5
- package/dist/types/src/components/TriggerEditor/FunctionInputEditor.d.ts.map +1 -1
- package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts +4 -4
- package/dist/types/src/components/TriggerEditor/SpecSelector.d.ts.map +1 -1
- package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts +1 -1
- package/dist/types/src/components/TriggerEditor/TriggerEditor.d.ts.map +1 -1
- package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts +95 -95
- package/dist/types/src/components/TriggerEditor/TriggerEditor.stories.d.ts.map +1 -1
- package/dist/types/src/containers/AutomationSettings/AutomationSettings.d.ts.map +1 -1
- package/dist/types/src/containers/FunctionsContainer/FunctionsContainer.d.ts.map +1 -1
- package/dist/types/src/containers/TriggerSettings/TriggerSettings.d.ts.map +1 -1
- package/dist/types/src/hooks/useComputeRuntime.d.ts.map +1 -1
- package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts +1 -1
- package/dist/types/src/hooks/useComputeRuntimeCallback.d.ts.map +1 -1
- package/dist/types/src/hooks/useComputeRuntimeService.d.ts +14 -2
- package/dist/types/src/hooks/useComputeRuntimeService.d.ts.map +1 -1
- package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts +1 -1
- package/dist/types/src/hooks/useTriggerRuntimeControls.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/operations/create-trigger-from-template.d.ts +3 -3
- package/dist/types/src/operations/create-trigger-from-template.d.ts.map +1 -1
- package/dist/types/src/operations/index.d.ts +1 -2
- package/dist/types/src/operations/index.d.ts.map +1 -1
- package/dist/types/src/plugin.d.ts +4 -0
- package/dist/types/src/plugin.d.ts.map +1 -0
- package/dist/types/src/testing/test-functions.d.ts +78 -78
- package/dist/types/src/translations.d.ts +32 -33
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/AutomationCapabilities.d.ts +22 -0
- package/dist/types/src/types/AutomationCapabilities.d.ts.map +1 -0
- package/dist/types/src/types/AutomationEvents.d.ts +3 -0
- package/dist/types/src/types/AutomationEvents.d.ts.map +1 -0
- package/dist/types/src/{operations/definitions.d.ts → types/AutomationOperation.d.ts} +5 -5
- package/dist/types/src/types/AutomationOperation.d.ts.map +1 -0
- package/dist/types/src/types/index.d.ts +3 -2
- package/dist/types/src/types/index.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +107 -74
- package/src/{cli/plugin.ts → AutomationPlugin.node.ts} +8 -2
- package/src/AutomationPlugin.test.ts +27 -0
- package/src/AutomationPlugin.tsx +5 -5
- package/src/capabilities/app-graph-builder.ts +10 -6
- package/src/capabilities/compute-runtime.ts +35 -16
- package/src/capabilities/index.ts +1 -1
- package/src/capabilities/node.ts +6 -0
- package/src/capabilities/operation-handler.ts +1 -1
- package/src/{cli/commands → commands}/trigger/create/queue.ts +3 -4
- package/src/{cli/commands → commands}/trigger/create/subscription.ts +1 -2
- package/src/{cli/commands → commands}/trigger/create/timer.ts +1 -2
- package/src/{cli/commands → commands}/trigger/list.ts +5 -3
- package/src/{cli/commands → commands}/trigger/remove.ts +2 -3
- package/src/{cli/commands → commands}/trigger/update/queue.ts +7 -8
- package/src/{cli/commands → commands}/trigger/update/subscription.ts +5 -6
- package/src/{cli/commands → commands}/trigger/update/timer.ts +5 -6
- package/src/{cli/commands → commands}/trigger/util.ts +8 -7
- package/src/components/AutomationPanel/AutomationPanel.stories.tsx +2 -3
- package/src/components/AutomationPanel/AutomationPanel.tsx +10 -7
- package/src/components/FunctionsPanel/FunctionsPanel.tsx +4 -4
- package/src/components/FunctionsRegistry/FunctionsRegistry.tsx +3 -2
- package/src/components/TriggerEditor/FunctionInputEditor.tsx +1 -1
- package/src/components/TriggerEditor/SpecSelector.tsx +1 -1
- package/src/components/TriggerEditor/TriggerEditor.stories.tsx +4 -5
- package/src/components/TriggerEditor/TriggerEditor.tsx +7 -8
- package/src/containers/FunctionsContainer/FunctionsContainer.tsx +1 -2
- package/src/hooks/useComputeRuntime.ts +9 -0
- package/src/hooks/useComputeRuntimeCallback.ts +2 -3
- package/src/hooks/useComputeRuntimeService.ts +48 -9
- package/src/hooks/useTriggerRuntimeControls.ts +6 -3
- package/src/index.ts +2 -2
- package/src/meta.ts +1 -0
- package/src/operations/create-trigger-from-template.ts +51 -52
- package/src/operations/index.ts +1 -3
- package/src/plugin.ts +11 -0
- package/src/testing/test-functions.ts +6 -6
- package/src/translations.ts +3 -3
- package/src/types/AutomationCapabilities.ts +48 -0
- package/src/types/AutomationEvents.ts +11 -0
- package/src/{operations/definitions.ts → types/AutomationOperation.ts} +4 -2
- package/src/types/index.ts +4 -2
- package/dist/lib/browser/chunk-LEN2XWRB.mjs +0 -44
- package/dist/lib/browser/chunk-LEN2XWRB.mjs.map +0 -7
- package/dist/lib/browser/chunk-VKSAIOAL.mjs +0 -54
- package/dist/lib/browser/chunk-VKSAIOAL.mjs.map +0 -7
- package/dist/lib/browser/cli/index.mjs.map +0 -7
- package/dist/lib/browser/create-trigger-from-template-NH5EL6LB.mjs.map +0 -7
- package/dist/lib/browser/hooks/index.mjs.map +0 -7
- package/dist/lib/browser/index.mjs +0 -94
- package/dist/lib/browser/index.mjs.map +0 -7
- package/dist/lib/browser/meta.json +0 -1
- package/dist/lib/browser/operations/index.mjs +0 -14
- package/dist/lib/browser/operations/index.mjs.map +0 -7
- package/dist/lib/browser/types/index.mjs +0 -14
- package/dist/lib/node-esm/chunk-45PS7CQD.mjs +0 -56
- package/dist/lib/node-esm/chunk-45PS7CQD.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
- package/dist/lib/node-esm/chunk-V2SSR4MK.mjs +0 -45
- package/dist/lib/node-esm/chunk-V2SSR4MK.mjs.map +0 -7
- package/dist/lib/node-esm/cli/index.mjs +0 -1111
- package/dist/lib/node-esm/cli/index.mjs.map +0 -7
- package/dist/lib/node-esm/create-trigger-from-template-C7UPU2VL.mjs +0 -72
- package/dist/lib/node-esm/create-trigger-from-template-C7UPU2VL.mjs.map +0 -7
- package/dist/lib/node-esm/hooks/index.mjs +0 -88
- package/dist/lib/node-esm/hooks/index.mjs.map +0 -7
- package/dist/lib/node-esm/index.mjs +0 -95
- package/dist/lib/node-esm/index.mjs.map +0 -7
- package/dist/lib/node-esm/meta.json +0 -1
- package/dist/lib/node-esm/operations/index.mjs +0 -15
- package/dist/lib/node-esm/operations/index.mjs.map +0 -7
- package/dist/lib/node-esm/types/index.mjs +0 -15
- package/dist/types/src/cli/commands/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/trigger/create/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/trigger/create/queue.d.ts.map +0 -1
- package/dist/types/src/cli/commands/trigger/create/subscription.d.ts.map +0 -1
- package/dist/types/src/cli/commands/trigger/create/timer.d.ts.map +0 -1
- package/dist/types/src/cli/commands/trigger/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/trigger/list.d.ts.map +0 -1
- package/dist/types/src/cli/commands/trigger/options.d.ts.map +0 -1
- package/dist/types/src/cli/commands/trigger/remove.d.ts.map +0 -1
- package/dist/types/src/cli/commands/trigger/update/index.d.ts.map +0 -1
- package/dist/types/src/cli/commands/trigger/update/queue.d.ts.map +0 -1
- package/dist/types/src/cli/commands/trigger/update/subscription.d.ts.map +0 -1
- package/dist/types/src/cli/commands/trigger/update/timer.d.ts.map +0 -1
- package/dist/types/src/cli/commands/trigger/util.d.ts.map +0 -1
- package/dist/types/src/cli/index.d.ts +0 -2
- package/dist/types/src/cli/index.d.ts.map +0 -1
- package/dist/types/src/cli/plugin.d.ts.map +0 -1
- package/dist/types/src/operations/definitions.d.ts.map +0 -1
- package/dist/types/src/types/capabilities.d.ts +0 -25
- package/dist/types/src/types/capabilities.d.ts.map +0 -1
- package/dist/types/src/types/events.d.ts +0 -5
- package/dist/types/src/types/events.d.ts.map +0 -1
- package/src/cli/index.ts +0 -5
- package/src/types/capabilities.ts +0 -47
- package/src/types/events.ts +0 -11
- /package/dist/lib/{browser/chunk-J5LGTIGS.mjs.map → neutral/AutomationPanel-HI63JQ2X.mjs.map} +0 -0
- /package/dist/lib/{browser/types/index.mjs.map → neutral/TriggerSettings-XCHIZPOR.mjs.map} +0 -0
- /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
- /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
- /package/dist/lib/{node-esm/types → neutral/components}/index.mjs.map +0 -0
- /package/dist/types/src/{cli/commands → commands}/index.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/trigger/list.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/trigger/options.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/trigger/update/queue.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/trigger/update/subscription.d.ts +0 -0
- /package/dist/types/src/{cli/commands → commands}/trigger/update/timer.d.ts +0 -0
- /package/src/{cli/commands → commands}/index.ts +0 -0
- /package/src/{cli/commands → commands}/trigger/create/index.ts +0 -0
- /package/src/{cli/commands → commands}/trigger/index.ts +0 -0
- /package/src/{cli/commands → commands}/trigger/options.ts +0 -0
- /package/src/{cli/commands → commands}/trigger/update/index.ts +0 -0
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/capabilities/compute-runtime.ts
|
|
4
|
+
import { Registry } from "@effect-atom/atom";
|
|
5
|
+
import * as BrowserKeyValueStore from "@effect/platform-browser/BrowserKeyValueStore";
|
|
6
|
+
import * as KeyValueStore from "@effect/platform/KeyValueStore";
|
|
7
|
+
import * as Context from "effect/Context";
|
|
8
|
+
import * as Effect from "effect/Effect";
|
|
9
|
+
import * as Fiber from "effect/Fiber";
|
|
10
|
+
import * as Layer from "effect/Layer";
|
|
11
|
+
import * as ManagedRuntime from "effect/ManagedRuntime";
|
|
12
|
+
import { AiService, OpaqueToolkit } from "@dxos/ai";
|
|
13
|
+
import { Capabilities, Capability } from "@dxos/app-framework";
|
|
14
|
+
import { AppCapabilities } from "@dxos/app-toolkit";
|
|
15
|
+
import { AiContext, AiSession } from "@dxos/assistant";
|
|
16
|
+
import { McpServer } from "@dxos/assistant-toolkit";
|
|
17
|
+
import { ClientService } from "@dxos/client";
|
|
18
|
+
import { Blueprint, Credential, Operation, OperationHandlerSet, OperationRegistry, ServiceNotAvailableError } from "@dxos/compute";
|
|
19
|
+
import { Resource } from "@dxos/context";
|
|
20
|
+
import { Database, DXN, Feed, Filter, Obj } from "@dxos/echo";
|
|
21
|
+
import { AtomObj } from "@dxos/echo-atom";
|
|
22
|
+
import { createFeedServiceLayer } from "@dxos/echo-db";
|
|
23
|
+
import { acquireReleaseResource, asyncTaskTaggingLayer } from "@dxos/effect";
|
|
24
|
+
import { FunctionInvocationService, feedServiceFromQueueServiceLayer, QueueService, credentialsLayerFromDatabase } from "@dxos/functions";
|
|
25
|
+
import { AgentService } from "@dxos/functions-runtime";
|
|
26
|
+
import { FeedTraceSink, FunctionImplementationResolver, FunctionInvocationServiceLayerWithLocalLoopbackExecutor, ProcessManager, RemoteFunctionExecutionService, ServiceResolver, TriggerDispatcher, TriggerStateStore } from "@dxos/functions-runtime";
|
|
27
|
+
import { invariant } from "@dxos/invariant";
|
|
28
|
+
import { log } from "@dxos/log";
|
|
29
|
+
import { ClientCapabilities } from "@dxos/plugin-client";
|
|
30
|
+
import { AutomationCapabilities } from "#types";
|
|
31
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-automation/src/capabilities/compute-runtime.ts";
|
|
32
|
+
var compute_runtime_default = Capability.makeModule(Effect.fnUntraced(function* () {
|
|
33
|
+
const capabilities = yield* Capability.Service;
|
|
34
|
+
const provider = yield* Effect.tryPromise(() => new ComputeRuntimeProviderImpl(capabilities).open());
|
|
35
|
+
return Capability.contributes(AutomationCapabilities.ComputeRuntime, provider, () => Effect.tryPromise(() => provider.close()));
|
|
36
|
+
}));
|
|
37
|
+
var isDev = import.meta.env.DEV ?? false;
|
|
38
|
+
var triggerStateStoreLayer = typeof globalThis.localStorage !== "undefined" ? TriggerStateStore.layerKv.pipe(Layer.provide(BrowserKeyValueStore.layerLocalStorage)) : TriggerStateStore.layerMemory;
|
|
39
|
+
var ComputeRuntimeProviderImpl = class extends Resource {
|
|
40
|
+
#runtimes = /* @__PURE__ */ new Map();
|
|
41
|
+
#subscriptions = /* @__PURE__ */ new Map();
|
|
42
|
+
#capabilities;
|
|
43
|
+
constructor(capabilities) {
|
|
44
|
+
super();
|
|
45
|
+
this.#capabilities = capabilities;
|
|
46
|
+
}
|
|
47
|
+
async _open() {
|
|
48
|
+
}
|
|
49
|
+
async _close() {
|
|
50
|
+
for (const unsubscribe of this.#subscriptions.values()) {
|
|
51
|
+
unsubscribe();
|
|
52
|
+
}
|
|
53
|
+
this.#subscriptions.clear();
|
|
54
|
+
await Promise.all(Array.from(this.#runtimes.values()).map((rt) => rt.dispose()));
|
|
55
|
+
this.#runtimes.clear();
|
|
56
|
+
}
|
|
57
|
+
getRuntime(spaceId) {
|
|
58
|
+
if (this.#runtimes.has(spaceId)) {
|
|
59
|
+
log("getRuntime cache hit", {
|
|
60
|
+
spaceId
|
|
61
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 59, S: this });
|
|
62
|
+
return this.#runtimes.get(spaceId);
|
|
63
|
+
}
|
|
64
|
+
log("getRuntime building", {
|
|
65
|
+
spaceId
|
|
66
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 64, S: this });
|
|
67
|
+
const layer = Layer.unwrapScoped(Effect.gen(this, function* () {
|
|
68
|
+
log("compute runtime layer build: start", {
|
|
69
|
+
spaceId
|
|
70
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 68, S: this });
|
|
71
|
+
const client = this.#capabilities.get(ClientCapabilities.Client);
|
|
72
|
+
const aiServiceLayer = this.#capabilities.get(AppCapabilities.AiServiceLayer) ?? Layer.die("AiService not found");
|
|
73
|
+
const registry = this.#capabilities.get(Capabilities.AtomRegistry);
|
|
74
|
+
const operationHandlers = OperationHandlerSet.merge(...this.#capabilities.getAll(Capabilities.OperationHandler));
|
|
75
|
+
const opaqueToolkitProvider = Layer.succeed(OpaqueToolkit.OpaqueToolkitProvider, {
|
|
76
|
+
getToolkit: () => {
|
|
77
|
+
const toolkits = this.#capabilities.getAll(AppCapabilities.Toolkit);
|
|
78
|
+
return OpaqueToolkit.merge(...toolkits);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
const blueprints = this.#capabilities.getAll(AppCapabilities.BlueprintDefinition).flatMap((blueprint) => blueprint.make());
|
|
82
|
+
const space = client.spaces.get(spaceId);
|
|
83
|
+
invariant(space, `Invalid space: ${spaceId}`, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 84, S: this, A: ["space", "`Invalid space: ${spaceId}`"] });
|
|
84
|
+
log("compute runtime layer build: waiting for space ready", {
|
|
85
|
+
spaceId
|
|
86
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 85, S: this });
|
|
87
|
+
const waitStarted = Date.now();
|
|
88
|
+
yield* Effect.promise(() => space.waitUntilReady());
|
|
89
|
+
log("compute runtime layer build: space ready", {
|
|
90
|
+
spaceId,
|
|
91
|
+
waitMs: Date.now() - waitStarted
|
|
92
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 90, S: this });
|
|
93
|
+
const mcpQuery = space.db.query(Filter.type(McpServer.McpServer));
|
|
94
|
+
this.#subscriptions.set(spaceId, mcpQuery.subscribe());
|
|
95
|
+
log("compute runtime layer build: composing inner layer", {
|
|
96
|
+
spaceId
|
|
97
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 97, S: this });
|
|
98
|
+
return Layer.scopedDiscard(Effect.gen(function* () {
|
|
99
|
+
log("compute runtime inner layer: acquiring services", {
|
|
100
|
+
spaceId
|
|
101
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 101, S: this });
|
|
102
|
+
const registry2 = yield* Registry.AtomRegistry;
|
|
103
|
+
const triggerDispatcher = yield* TriggerDispatcher;
|
|
104
|
+
log("compute runtime inner layer: services acquired", {
|
|
105
|
+
spaceId
|
|
106
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 106, S: this });
|
|
107
|
+
let inFlight;
|
|
108
|
+
const transition = (effect2) => {
|
|
109
|
+
if (inFlight) {
|
|
110
|
+
Effect.runFork(Fiber.interrupt(inFlight));
|
|
111
|
+
}
|
|
112
|
+
inFlight = Effect.runFork(effect2.pipe(Effect.tapErrorCause((cause) => Effect.logError("trigger dispatcher transition failed", cause))));
|
|
113
|
+
};
|
|
114
|
+
const unsubscribe = registry2.subscribe(AtomObj.make(space.properties), (properties) => {
|
|
115
|
+
const computeEnvironment = properties.computeEnvironment ?? "local";
|
|
116
|
+
transition(computeEnvironment === "local" ? triggerDispatcher.start() : triggerDispatcher.stop());
|
|
117
|
+
}, {
|
|
118
|
+
immediate: true
|
|
119
|
+
});
|
|
120
|
+
yield* Effect.addFinalizer(() => Effect.sync(() => {
|
|
121
|
+
log("compute runtime inner layer: finalize", {
|
|
122
|
+
spaceId
|
|
123
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 125, S: this });
|
|
124
|
+
unsubscribe();
|
|
125
|
+
if (inFlight) {
|
|
126
|
+
Effect.runFork(Fiber.interrupt(inFlight));
|
|
127
|
+
}
|
|
128
|
+
}));
|
|
129
|
+
log("compute runtime inner layer: acquire complete", {
|
|
130
|
+
spaceId
|
|
131
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 133, S: this });
|
|
132
|
+
})).pipe(
|
|
133
|
+
Layer.provideMerge(TriggerDispatcher.layer({
|
|
134
|
+
timeControl: "natural"
|
|
135
|
+
})),
|
|
136
|
+
Layer.provideMerge(AgentService.layer({
|
|
137
|
+
getMcpServers: () => mcpQuery.results.filter(Obj.instanceOf(McpServer.McpServer)).filter((server) => server.enabled !== false).map(({ url, protocol, apiKey }) => ({
|
|
138
|
+
url,
|
|
139
|
+
protocol,
|
|
140
|
+
apiKey
|
|
141
|
+
}))
|
|
142
|
+
})),
|
|
143
|
+
Layer.provideMerge(ProcessManager.ProcessOperationInvoker.layer),
|
|
144
|
+
Layer.provideMerge(ProcessManager.layer()),
|
|
145
|
+
// TODO(dmaretskyi): Duped in assistant testing layer.
|
|
146
|
+
Layer.provideMerge(
|
|
147
|
+
// TODO(dmaretskyi): Refactor to be able to merge resovler layers, also consider service mesh achitecture.
|
|
148
|
+
Layer.effect(ServiceResolver.ServiceResolver, Effect.gen(function* () {
|
|
149
|
+
const services = yield* Effect.context().pipe(Effect.map(Context.pick(Database.Service, Feed.FeedService)), Effect.map(Layer.succeedContext));
|
|
150
|
+
return ServiceResolver.compose(
|
|
151
|
+
ServiceResolver.succeed(AiContext.Service, (context2) => Effect.gen(function* () {
|
|
152
|
+
if (!context2.conversation) {
|
|
153
|
+
return yield* Effect.fail(new ServiceNotAvailableError(AiContext.Service.key));
|
|
154
|
+
}
|
|
155
|
+
const feed = yield* Database.resolve(DXN.parse(context2.conversation), Feed.Feed).pipe(Effect.orDie);
|
|
156
|
+
const runtime3 = yield* Effect.runtime();
|
|
157
|
+
const binder = yield* acquireReleaseResource(() => new AiContext.Binder({
|
|
158
|
+
feed,
|
|
159
|
+
runtime: runtime3
|
|
160
|
+
}));
|
|
161
|
+
return {
|
|
162
|
+
binder
|
|
163
|
+
};
|
|
164
|
+
}).pipe(Effect.provide(services))),
|
|
165
|
+
// AiSession.Service.
|
|
166
|
+
ServiceResolver.succeed(AiSession.Service, (context2) => Effect.gen(function* () {
|
|
167
|
+
if (!context2.conversation) {
|
|
168
|
+
return yield* Effect.fail(new ServiceNotAvailableError(AiSession.Service.key));
|
|
169
|
+
}
|
|
170
|
+
const feed = yield* Database.resolve(DXN.parse(context2.conversation), Feed.Feed).pipe(Effect.orDie);
|
|
171
|
+
const runtime3 = yield* Effect.runtime();
|
|
172
|
+
const session = yield* acquireReleaseResource(() => new AiSession.Session({
|
|
173
|
+
feed,
|
|
174
|
+
runtime: runtime3
|
|
175
|
+
}));
|
|
176
|
+
return session;
|
|
177
|
+
}).pipe(Effect.provide(services))),
|
|
178
|
+
yield* ServiceResolver.fromRequirements(Database.Service, OpaqueToolkit.OpaqueToolkitProvider, Feed.FeedService, QueueService, AiService.AiService, OperationRegistry.Service, Blueprint.RegistryService, Credential.CredentialsService)
|
|
179
|
+
);
|
|
180
|
+
}))
|
|
181
|
+
),
|
|
182
|
+
Layer.provideMerge(Layer.succeed(Blueprint.RegistryService, new Blueprint.Registry(blueprints))),
|
|
183
|
+
Layer.provideMerge(Layer.succeed(Capability.Service, this.#capabilities)),
|
|
184
|
+
Layer.provideMerge(Layer.succeed(Registry.AtomRegistry, registry)),
|
|
185
|
+
Layer.provideMerge(Layer.mergeAll(FeedTraceSink.layerLive, triggerStateStoreLayer, KeyValueStore.layerMemory)),
|
|
186
|
+
Layer.provideMerge(OperationRegistry.layer),
|
|
187
|
+
Layer.provideMerge(feedServiceFromQueueServiceLayer),
|
|
188
|
+
Layer.provideMerge(OperationHandlerSet.provide(operationHandlers)),
|
|
189
|
+
Layer.provideMerge(Layer.effect(Operation.Service, Effect.gen(function* () {
|
|
190
|
+
const fis = yield* FunctionInvocationService;
|
|
191
|
+
return {
|
|
192
|
+
invoke: (op, ...args) => fis.invokeFunction(op, args[0]),
|
|
193
|
+
schedule: (op, ...args) => fis.invokeFunction(op, args[0]).pipe(Effect.fork, Effect.asVoid),
|
|
194
|
+
invokePromise: async () => ({
|
|
195
|
+
error: new Error("Not implemented")
|
|
196
|
+
})
|
|
197
|
+
};
|
|
198
|
+
}))),
|
|
199
|
+
Layer.provideMerge(FunctionInvocationServiceLayerWithLocalLoopbackExecutor.pipe(Layer.provideMerge(FunctionImplementationResolver.layerTest({
|
|
200
|
+
functions: operationHandlers
|
|
201
|
+
})), Layer.provideMerge(client.config.values.runtime?.services?.edge?.url ? RemoteFunctionExecutionService.fromClient(client, client.config.get("runtime.client.edgeFeatures.agents") ? spaceId : void 0) : RemoteFunctionExecutionService.layerMock))),
|
|
202
|
+
Layer.provideMerge(opaqueToolkitProvider),
|
|
203
|
+
Layer.provideMerge(aiServiceLayer),
|
|
204
|
+
Layer.provideMerge(credentialsLayerFromDatabase()),
|
|
205
|
+
Layer.provideMerge(ClientService.fromClient(client)),
|
|
206
|
+
Layer.provideMerge(space ? Database.layer(space.db) : Database.notAvailable)
|
|
207
|
+
).pipe(Layer.provideMerge(space ? QueueService.layer(space.queues) : QueueService.notAvailable), Layer.provideMerge(space ? createFeedServiceLayer(space.queues) : Feed.notAvailable), Layer.provideMerge(isDev ? asyncTaskTaggingLayer() : Layer.empty));
|
|
208
|
+
}));
|
|
209
|
+
const runtime2 = ManagedRuntime.make(layer);
|
|
210
|
+
log("getRuntime ready (managed runtime created)", {
|
|
211
|
+
spaceId
|
|
212
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 189, S: this });
|
|
213
|
+
this.#runtimes.set(spaceId, runtime2);
|
|
214
|
+
return runtime2;
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
export {
|
|
218
|
+
compute_runtime_default as default
|
|
219
|
+
};
|
|
220
|
+
//# sourceMappingURL=compute-runtime-42CP6VG5.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 { Registry } from '@effect-atom/atom';\nimport * as BrowserKeyValueStore from '@effect/platform-browser/BrowserKeyValueStore';\nimport * as KeyValueStore from '@effect/platform/KeyValueStore';\nimport * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\nimport * as Fiber from 'effect/Fiber';\nimport * as Layer from 'effect/Layer';\nimport * as ManagedRuntime from 'effect/ManagedRuntime';\n\nimport { AiService, OpaqueToolkit } from '@dxos/ai';\nimport { Capabilities, Capability, type CapabilityManager } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { AiContext, AiSession } from '@dxos/assistant';\nimport { McpServer } from '@dxos/assistant-toolkit';\nimport { ClientService } from '@dxos/client';\nimport { SpaceProperties } from '@dxos/client-protocol';\nimport {\n Blueprint,\n Credential,\n Operation,\n OperationHandlerSet,\n OperationRegistry,\n ServiceNotAvailableError,\n} from '@dxos/compute';\nimport { Resource } from '@dxos/context';\nimport { Database, DXN, Feed, Filter, Obj } from '@dxos/echo';\nimport { AtomObj } from '@dxos/echo-atom';\nimport { createFeedServiceLayer } from '@dxos/echo-db';\nimport { acquireReleaseResource, asyncTaskTaggingLayer } from '@dxos/effect';\nimport {\n FunctionInvocationService,\n feedServiceFromQueueServiceLayer,\n QueueService,\n credentialsLayerFromDatabase,\n} from '@dxos/functions';\nimport { AgentService } from '@dxos/functions-runtime';\nimport {\n FeedTraceSink,\n FunctionImplementationResolver,\n FunctionInvocationServiceLayerWithLocalLoopbackExecutor,\n ProcessManager,\n RemoteFunctionExecutionService,\n ServiceResolver,\n TriggerDispatcher,\n TriggerStateStore,\n} from '@dxos/functions-runtime';\nimport { invariant } from '@dxos/invariant';\nimport { type SpaceId } from '@dxos/keys';\nimport { log } from '@dxos/log';\nimport { ClientCapabilities } from '@dxos/plugin-client';\n\nimport { AutomationCapabilities } from '#types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const capabilities = yield* Capability.Service;\n const provider = yield* Effect.tryPromise(() => new ComputeRuntimeProviderImpl(capabilities).open());\n return Capability.contributes(AutomationCapabilities.ComputeRuntime, provider, () =>\n Effect.tryPromise(() => provider.close()),\n );\n }),\n);\n\ndeclare global {\n interface ImportMeta {\n env: ImportMetaEnv;\n }\n\n interface ImportMetaEnv {\n DEV: boolean;\n }\n}\n\nconst isDev = import.meta.env.DEV ?? false;\n\n/** Node / test environments have no `localStorage`; browser keeps persistent trigger state. */\nconst triggerStateStoreLayer =\n typeof globalThis.localStorage !== 'undefined'\n ? TriggerStateStore.layerKv.pipe(Layer.provide(BrowserKeyValueStore.layerLocalStorage))\n : TriggerStateStore.layerMemory;\n\n/**\n * Adapts plugin capabilities to runtime layers.\n */\nclass ComputeRuntimeProviderImpl extends Resource implements AutomationCapabilities.ComputeRuntimeProvider {\n readonly #runtimes = new Map<SpaceId, AutomationCapabilities.ComputeRuntime>();\n readonly #subscriptions = new Map<SpaceId, () => void>();\n readonly #capabilities: CapabilityManager.CapabilityManager;\n\n constructor(capabilities: CapabilityManager.CapabilityManager) {\n super();\n this.#capabilities = capabilities;\n }\n\n protected override async _open() {}\n\n protected override async _close() {\n for (const unsubscribe of this.#subscriptions.values()) {\n unsubscribe();\n }\n this.#subscriptions.clear();\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 log('getRuntime cache hit', { spaceId });\n return this.#runtimes.get(spaceId)!;\n }\n log('getRuntime building', { spaceId });\n\n const layer = Layer.unwrapScoped(\n Effect.gen(this, function* () {\n log('compute runtime layer build: start', { spaceId });\n const client = this.#capabilities.get(ClientCapabilities.Client);\n const aiServiceLayer =\n this.#capabilities.get(AppCapabilities.AiServiceLayer) ?? Layer.die('AiService not found');\n const registry = this.#capabilities.get(Capabilities.AtomRegistry);\n\n // TODO(dmaretskyi): Make these reactive.\n const operationHandlers = OperationHandlerSet.merge(\n ...this.#capabilities.getAll(Capabilities.OperationHandler),\n );\n\n const opaqueToolkitProvider = Layer.succeed(OpaqueToolkit.OpaqueToolkitProvider, {\n getToolkit: () => {\n const toolkits = this.#capabilities.getAll(AppCapabilities.Toolkit);\n return OpaqueToolkit.merge(...toolkits);\n },\n });\n\n const blueprints = this.#capabilities\n .getAll(AppCapabilities.BlueprintDefinition)\n .flatMap((blueprint) => blueprint.make());\n\n const space = client.spaces.get(spaceId);\n invariant(space, `Invalid space: ${spaceId}`);\n log('compute runtime layer build: waiting for space ready', { spaceId });\n const waitStarted = Date.now();\n yield* Effect.promise(() => space.waitUntilReady());\n log('compute runtime layer build: space ready', { spaceId, waitMs: Date.now() - waitStarted });\n\n // Maintain a live query of space-level MCP server configs.\n const mcpQuery = space.db.query(Filter.type(McpServer.McpServer));\n this.#subscriptions.set(spaceId, mcpQuery.subscribe());\n\n log('compute runtime layer build: composing inner layer', { spaceId });\n return Layer.scopedDiscard(\n Effect.gen(function* () {\n log('compute runtime inner layer: acquiring services', { spaceId });\n const registry = yield* Registry.AtomRegistry;\n const triggerDispatcher = yield* TriggerDispatcher;\n log('compute runtime inner layer: services acquired', { spaceId });\n // Track the in-flight start/stop so a new transition cancels the previous one\n // (preserving ordering on rapid toggles) and surfaces failures via the Effect logger.\n let inFlight: Fiber.RuntimeFiber<unknown, unknown> | undefined;\n const transition = (effect: Effect.Effect<unknown, unknown>) => {\n if (inFlight) {\n Effect.runFork(Fiber.interrupt(inFlight));\n }\n inFlight = Effect.runFork(\n effect.pipe(\n Effect.tapErrorCause((cause) => Effect.logError('trigger dispatcher transition failed', cause)),\n ),\n );\n };\n const unsubscribe = registry.subscribe(\n AtomObj.make(space.properties),\n (properties: Obj.Snapshot<SpaceProperties>) => {\n const computeEnvironment = properties.computeEnvironment ?? 'local';\n transition(computeEnvironment === 'local' ? triggerDispatcher.start() : triggerDispatcher.stop());\n },\n { immediate: true },\n );\n yield* Effect.addFinalizer(() =>\n Effect.sync(() => {\n log('compute runtime inner layer: finalize', { spaceId });\n unsubscribe();\n if (inFlight) {\n Effect.runFork(Fiber.interrupt(inFlight));\n }\n }),\n );\n log('compute runtime inner layer: acquire complete', { spaceId });\n }),\n )\n .pipe(\n Layer.provideMerge(TriggerDispatcher.layer({ timeControl: 'natural' })),\n Layer.provideMerge(\n AgentService.layer({\n getMcpServers: () =>\n mcpQuery.results\n .filter(Obj.instanceOf(McpServer.McpServer))\n .filter((server) => server.enabled !== false)\n .map(({ url, protocol, apiKey }) => ({ url, protocol, apiKey })),\n }),\n ),\n Layer.provideMerge(ProcessManager.ProcessOperationInvoker.layer),\n Layer.provideMerge(ProcessManager.layer()),\n // TODO(dmaretskyi): Duped in assistant testing layer.\n Layer.provideMerge(\n // TODO(dmaretskyi): Refactor to be able to merge resovler layers, also consider service mesh achitecture.\n Layer.effect(\n ServiceResolver.ServiceResolver,\n Effect.gen(function* () {\n const services = yield* Effect.context<Database.Service | Feed.FeedService>().pipe(\n Effect.map(Context.pick(Database.Service, Feed.FeedService)),\n Effect.map(Layer.succeedContext),\n );\n // AiContext.Binder.\n return ServiceResolver.compose(\n ServiceResolver.succeed(AiContext.Service, (context) =>\n Effect.gen(function* () {\n if (!context.conversation) {\n return yield* Effect.fail(new ServiceNotAvailableError(AiContext.Service.key));\n }\n const feed = yield* Database.resolve(DXN.parse(context.conversation), Feed.Feed).pipe(\n Effect.orDie,\n );\n const runtime = yield* Effect.runtime<Feed.FeedService>();\n const binder = yield* acquireReleaseResource(\n () =>\n new AiContext.Binder({\n feed,\n runtime,\n }),\n );\n return { binder };\n }).pipe(Effect.provide(services)),\n ),\n // AiSession.Service.\n ServiceResolver.succeed(AiSession.Service, (context) =>\n Effect.gen(function* () {\n if (!context.conversation) {\n return yield* Effect.fail(new ServiceNotAvailableError(AiSession.Service.key));\n }\n const feed = yield* Database.resolve(DXN.parse(context.conversation), Feed.Feed).pipe(\n Effect.orDie,\n );\n const runtime = yield* Effect.runtime<Feed.FeedService>();\n const session = yield* acquireReleaseResource(\n () =>\n new AiSession.Session({\n feed,\n runtime,\n }),\n );\n return session;\n }).pipe(Effect.provide(services)),\n ),\n yield* ServiceResolver.fromRequirements(\n Database.Service,\n OpaqueToolkit.OpaqueToolkitProvider,\n Feed.FeedService,\n QueueService,\n AiService.AiService,\n OperationRegistry.Service,\n Blueprint.RegistryService,\n Credential.CredentialsService,\n ),\n );\n }),\n ),\n ),\n Layer.provideMerge(Layer.succeed(Blueprint.RegistryService, new Blueprint.Registry(blueprints))),\n Layer.provideMerge(Layer.succeed(Capability.Service, this.#capabilities)),\n Layer.provideMerge(Layer.succeed(Registry.AtomRegistry, registry)),\n Layer.provideMerge(\n Layer.mergeAll(FeedTraceSink.layerLive, triggerStateStoreLayer, KeyValueStore.layerMemory),\n ),\n Layer.provideMerge(OperationRegistry.layer),\n Layer.provideMerge(feedServiceFromQueueServiceLayer),\n Layer.provideMerge(OperationHandlerSet.provide(operationHandlers)),\n Layer.provideMerge(\n Layer.effect(\n Operation.Service,\n Effect.gen(function* () {\n const fis = yield* FunctionInvocationService;\n return {\n invoke: (op: any, ...args: any[]) => (fis.invokeFunction as any)(op, args[0]),\n schedule: (op: any, ...args: any[]) =>\n (fis.invokeFunction as any)(op, args[0]).pipe(Effect.fork, Effect.asVoid),\n invokePromise: async () => ({ error: new Error('Not implemented') }),\n } as unknown as Operation.OperationService;\n }),\n ),\n ),\n Layer.provideMerge(\n FunctionInvocationServiceLayerWithLocalLoopbackExecutor.pipe(\n Layer.provideMerge(FunctionImplementationResolver.layerTest({ functions: operationHandlers })),\n Layer.provideMerge(\n client.config.values.runtime?.services?.edge?.url\n ? RemoteFunctionExecutionService.fromClient(\n client,\n client.config.get('runtime.client.edgeFeatures.agents') ? spaceId : undefined,\n )\n : RemoteFunctionExecutionService.layerMock,\n ),\n ),\n ),\n Layer.provideMerge(opaqueToolkitProvider),\n Layer.provideMerge(aiServiceLayer),\n Layer.provideMerge(credentialsLayerFromDatabase()),\n Layer.provideMerge(ClientService.fromClient(client)),\n Layer.provideMerge(space ? Database.layer(space.db) : Database.notAvailable),\n )\n .pipe(\n Layer.provideMerge(space ? QueueService.layer(space.queues) : QueueService.notAvailable),\n Layer.provideMerge(space ? createFeedServiceLayer(space.queues) : Feed.notAvailable),\n Layer.provideMerge(isDev ? asyncTaskTaggingLayer() : Layer.empty),\n );\n }),\n );\n\n const runtime = ManagedRuntime.make(layer);\n log('getRuntime ready (managed runtime created)', { spaceId });\n this.#runtimes.set(spaceId, runtime);\n return runtime;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["Registry", "BrowserKeyValueStore", "KeyValueStore", "Context", "Effect", "Fiber", "Layer", "ManagedRuntime", "AiService", "OpaqueToolkit", "Capabilities", "Capability", "AppCapabilities", "AiContext", "AiSession", "McpServer", "ClientService", "Blueprint", "Credential", "Operation", "OperationHandlerSet", "OperationRegistry", "ServiceNotAvailableError", "Resource", "Database", "DXN", "Feed", "Filter", "Obj", "AtomObj", "createFeedServiceLayer", "acquireReleaseResource", "asyncTaskTaggingLayer", "FunctionInvocationService", "feedServiceFromQueueServiceLayer", "QueueService", "credentialsLayerFromDatabase", "AgentService", "FeedTraceSink", "FunctionImplementationResolver", "FunctionInvocationServiceLayerWithLocalLoopbackExecutor", "ProcessManager", "RemoteFunctionExecutionService", "ServiceResolver", "TriggerDispatcher", "TriggerStateStore", "invariant", "log", "ClientCapabilities", "AutomationCapabilities", "provider", "tryPromise", "ComputeRuntimeProviderImpl", "contributes", "isDev", "capabilities", "_open", "unsubscribe", "getRuntime", "spaceId", "aiServiceLayer", "get", "registry", "AtomRegistry", "operationHandlers", "getToolkit", "getAll", "promise", "space", "waitUntilReady", "waitMs", "waitStarted", "mcpQuery", "query", "type", "triggerDispatcher", "runFork", "interrupt", "inFlight", "pipe", "subscribe", "make", "properties", "transition", "computeEnvironment", "start", "immediate", "addFinalizer", "timeControl", "provideMerge", "getMcpServers", "url", "protocol", "apiKey", "effect", "succeed", "Service", "context", "gen", "feed", "resolve", "conversation", "binder", "Binder", "runtime", "fail", "session", "Session", "fis", "invoke", "schedule", "invokePromise", "error", "functions", "client", "config", "layer"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import "../chunk-J5LGTIGS.mjs";
|
|
2
|
+
|
|
3
|
+
// src/containers/index.ts
|
|
4
|
+
import { lazy } from "react";
|
|
5
|
+
var AutomationSettings = lazy(() => import("../AutomationSettings-LM5GSR4H.mjs"));
|
|
6
|
+
var FunctionsContainer = lazy(() => import("../FunctionsContainer-SR6DHMF6.mjs"));
|
|
7
|
+
var TriggerSettings = lazy(() => import("../TriggerSettings-XCHIZPOR.mjs"));
|
|
8
|
+
export {
|
|
9
|
+
AutomationSettings,
|
|
10
|
+
FunctionsContainer,
|
|
11
|
+
TriggerSettings
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/containers/index.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { type ComponentType, lazy } from 'react';\n\nexport const AutomationSettings: ComponentType<any> = lazy(() => import('./AutomationSettings'));\nexport const FunctionsContainer: ComponentType<any> = lazy(() => import('./FunctionsContainer'));\nexport const TriggerSettings: ComponentType<any> = lazy(() => import('./TriggerSettings'));\n"],
|
|
5
|
+
"mappings": ";;;AAIA,SAA6BA,YAAY;AAElC,IAAMC,qBAAyCD,KAAK,MAAM,OAAO,oCAAA,CAAA;AACjE,IAAME,qBAAyCF,KAAK,MAAM,OAAO,oCAAA,CAAA;AACjE,IAAMG,kBAAsCH,KAAK,MAAM,OAAO,iCAAA,CAAA;",
|
|
6
|
+
"names": ["lazy", "AutomationSettings", "FunctionsContainer", "TriggerSettings"]
|
|
7
|
+
}
|
|
@@ -1,19 +1,16 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "./chunk-
|
|
4
|
-
import "./chunk-VKSAIOAL.mjs";
|
|
2
|
+
AutomationOperation_exports
|
|
3
|
+
} from "./chunk-DSCOLDT5.mjs";
|
|
5
4
|
import "./chunk-J5LGTIGS.mjs";
|
|
6
5
|
|
|
7
6
|
// src/operations/create-trigger-from-template.ts
|
|
8
7
|
import * as Effect from "effect/Effect";
|
|
9
8
|
import { LayoutOperation, getSpacePath } from "@dxos/app-toolkit";
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { SpaceOperation } from "@dxos/plugin-space/operations";
|
|
14
|
-
import { Filter } from "@dxos/react-client/echo";
|
|
9
|
+
import { Operation, Script, Trigger } from "@dxos/compute";
|
|
10
|
+
import { Filter, Obj, Ref } from "@dxos/echo";
|
|
11
|
+
import { SpaceOperation } from "@dxos/plugin-space";
|
|
15
12
|
import { meta } from "#meta";
|
|
16
|
-
var handler = CreateTriggerFromTemplate.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ db, template, enabled = false, scriptName, input }) {
|
|
13
|
+
var handler = AutomationOperation_exports.CreateTriggerFromTemplate.pipe(Operation.withHandler(Effect.fnUntraced(function* ({ db, template, enabled = false, scriptName, input }) {
|
|
17
14
|
const trigger = Trigger.make({
|
|
18
15
|
enabled,
|
|
19
16
|
input
|
|
@@ -29,7 +26,7 @@ var handler = CreateTriggerFromTemplate.pipe(Operation.withHandler(Effect.fnUntr
|
|
|
29
26
|
})).run());
|
|
30
27
|
const [fn] = functions;
|
|
31
28
|
if (fn) {
|
|
32
|
-
Obj.
|
|
29
|
+
Obj.update(trigger, (trigger2) => {
|
|
33
30
|
trigger2.function = Ref.make(fn);
|
|
34
31
|
});
|
|
35
32
|
}
|
|
@@ -37,13 +34,13 @@ var handler = CreateTriggerFromTemplate.pipe(Operation.withHandler(Effect.fnUntr
|
|
|
37
34
|
}
|
|
38
35
|
switch (template.type) {
|
|
39
36
|
case "timer": {
|
|
40
|
-
Obj.
|
|
37
|
+
Obj.update(trigger, (trigger2) => {
|
|
41
38
|
trigger2.spec = Trigger.specTimer(template.cron);
|
|
42
39
|
});
|
|
43
40
|
break;
|
|
44
41
|
}
|
|
45
42
|
case "queue": {
|
|
46
|
-
Obj.
|
|
43
|
+
Obj.update(trigger, (trigger2) => {
|
|
47
44
|
trigger2.spec = Trigger.specQueue(template.queueDXN.toString());
|
|
48
45
|
});
|
|
49
46
|
break;
|
|
@@ -68,4 +65,4 @@ var create_trigger_from_template_default = handler;
|
|
|
68
65
|
export {
|
|
69
66
|
create_trigger_from_template_default as default
|
|
70
67
|
};
|
|
71
|
-
//# sourceMappingURL=create-trigger-from-template-
|
|
68
|
+
//# sourceMappingURL=create-trigger-from-template-7K3OYOHQ.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/operations/create-trigger-from-template.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { LayoutOperation, getSpacePath } from '@dxos/app-toolkit';\nimport { Operation, Script, Trigger } from '@dxos/compute';\nimport { Filter, Obj, Ref } from '@dxos/echo';\nimport { type DXN } from '@dxos/keys';\nimport { SpaceOperation } from '@dxos/plugin-space';\n\nimport { meta } from '#meta';\n\nimport { AutomationOperation } from '../types';\n\nconst handler: Operation.WithHandler<typeof AutomationOperation.CreateTriggerFromTemplate> =\n AutomationOperation.CreateTriggerFromTemplate.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* ({ db, 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 scripts = yield* Effect.promise(() => db.query(Filter.type(Script.Script, { name: scriptName })).run());\n const [script] = scripts;\n if (script) {\n const functions = yield* Effect.promise(() =>\n db.query(Filter.type(Operation.PersistentOperation, { source: Ref.make(script) })).run(),\n );\n const [fn] = functions;\n if (fn) {\n Obj.update(trigger, (trigger) => {\n trigger.function = Ref.make(fn);\n });\n }\n }\n }\n\n switch (template.type) {\n case 'timer': {\n Obj.update(trigger, (trigger) => {\n trigger.spec = Trigger.specTimer(template.cron);\n });\n break;\n }\n case 'queue': {\n Obj.update(trigger, (trigger) => {\n trigger.spec = Trigger.specQueue((template.queueDXN as DXN).toString());\n });\n break;\n }\n default: {\n break;\n }\n }\n\n yield* Operation.invoke(SpaceOperation.AddObject, {\n object: trigger,\n target: db,\n hidden: true,\n });\n yield* Operation.invoke(LayoutOperation.Open, {\n subject: [`${getSpacePath(db.spaceId)}/settings/${meta.id}.automations`],\n workspace: getSpacePath(db.spaceId),\n });\n }),\n ),\n );\n\nexport default handler;\n"],
|
|
5
|
+
"mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiBC,oBAAoB;AAC9C,SAASC,WAAWC,QAAQC,eAAe;AAC3C,SAASC,QAAQC,KAAKC,WAAW;AAEjC,SAASC,sBAAsB;AAE/B,SAASC,YAAY;AAIrB,IAAMC,UACJC,4BAAoBC,0BAA0BC,KAC5CC,UAAUC,YACDC,kBAAW,WAAW,EAAEC,IAAIC,UAAUC,UAAU,OAAOC,YAAYC,MAAK,GAAE;AAC/E,QAAMC,UAAUC,QAAQC,KAAK;IAAEL;IAASE;EAAM,CAAA;AAG9C,MAAID,YAAY;AACd,UAAMK,UAAU,OAAcC,eAAQ,MAAMT,GAAGU,MAAMC,OAAOC,KAAKC,OAAOA,QAAQ;MAAEC,MAAMX;IAAW,CAAA,CAAA,EAAIY,IAAG,CAAA;AAC1G,UAAM,CAACC,MAAAA,IAAUR;AACjB,QAAIQ,QAAQ;AACV,YAAMC,YAAY,OAAcR,eAAQ,MACtCT,GAAGU,MAAMC,OAAOC,KAAKf,UAAUqB,qBAAqB;QAAEC,QAAQC,IAAIb,KAAKS,MAAAA;MAAQ,CAAA,CAAA,EAAID,IAAG,CAAA;AAExF,YAAM,CAACM,EAAAA,IAAMJ;AACb,UAAII,IAAI;AACNC,YAAIC,OAAOlB,SAAS,CAACA,aAAAA;AACnBA,UAAAA,SAAQmB,WAAWJ,IAAIb,KAAKc,EAAAA;QAC9B,CAAA;MACF;IACF;EACF;AAEA,UAAQpB,SAASW,MAAI;IACnB,KAAK,SAAS;AACZU,UAAIC,OAAOlB,SAAS,CAACA,aAAAA;AACnBA,QAAAA,SAAQoB,OAAOnB,QAAQoB,UAAUzB,SAAS0B,IAAI;MAChD,CAAA;AACA;IACF;IACA,KAAK,SAAS;AACZL,UAAIC,OAAOlB,SAAS,CAACA,aAAAA;AACnBA,QAAAA,SAAQoB,OAAOnB,QAAQsB,UAAW3B,SAAS4B,SAAiBC,SAAQ,CAAA;MACtE,CAAA;AACA;IACF;IACA,SAAS;AACP;IACF;EACF;AAEA,SAAOjC,UAAUkC,OAAOC,eAAeC,WAAW;IAChDC,QAAQ7B;IACR8B,QAAQnC;IACRoC,QAAQ;EACV,CAAA;AACA,SAAOvC,UAAUkC,OAAOM,gBAAgBC,MAAM;IAC5CC,SAAS;MAAC,GAAGC,aAAaxC,GAAGyC,OAAO,CAAA,aAAcC,KAAKC,EAAE;;IACzDC,WAAWJ,aAAaxC,GAAGyC,OAAO;EACpC,CAAA;AACF,CAAA,CAAA,CAAA;AAIN,IAAA,uCAAehD;",
|
|
6
|
+
"names": ["Effect", "LayoutOperation", "getSpacePath", "Operation", "Script", "Trigger", "Filter", "Obj", "Ref", "SpaceOperation", "meta", "handler", "AutomationOperation", "CreateTriggerFromTemplate", "pipe", "Operation", "withHandler", "fnUntraced", "db", "template", "enabled", "scriptName", "input", "trigger", "Trigger", "make", "scripts", "promise", "query", "Filter", "type", "Script", "name", "run", "script", "functions", "PersistentOperation", "source", "Ref", "fn", "Obj", "update", "function", "spec", "specTimer", "cron", "specQueue", "queueDXN", "toString", "invoke", "SpaceOperation", "AddObject", "object", "target", "hidden", "LayoutOperation", "Open", "subject", "getSpacePath", "spaceId", "meta", "id", "workspace"]
|
|
7
|
+
}
|
|
@@ -1,15 +1,27 @@
|
|
|
1
1
|
import {
|
|
2
|
-
|
|
3
|
-
} from "../chunk-
|
|
2
|
+
AutomationCapabilities_exports
|
|
3
|
+
} from "../chunk-DSCOLDT5.mjs";
|
|
4
4
|
import "../chunk-J5LGTIGS.mjs";
|
|
5
5
|
|
|
6
6
|
// src/hooks/useComputeRuntimeCallback.ts
|
|
7
7
|
import { useCallback } from "react";
|
|
8
8
|
|
|
9
9
|
// src/hooks/useComputeRuntime.ts
|
|
10
|
+
import { useEffect } from "react";
|
|
10
11
|
import { useCapabilities } from "@dxos/app-framework/ui";
|
|
12
|
+
import { log } from "@dxos/log";
|
|
13
|
+
var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-automation/src/hooks/useComputeRuntime.ts";
|
|
11
14
|
var useComputeRuntime = (id) => {
|
|
12
|
-
const [computeRuntime] = useCapabilities(
|
|
15
|
+
const [computeRuntime] = useCapabilities(AutomationCapabilities_exports.ComputeRuntime);
|
|
16
|
+
useEffect(() => {
|
|
17
|
+
log("useComputeRuntime", {
|
|
18
|
+
hasCapability: !!computeRuntime,
|
|
19
|
+
spaceId: id
|
|
20
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file, L: 16, S: void 0 });
|
|
21
|
+
}, [
|
|
22
|
+
!!computeRuntime,
|
|
23
|
+
id
|
|
24
|
+
]);
|
|
13
25
|
if (!computeRuntime || id === void 0) {
|
|
14
26
|
return void 0;
|
|
15
27
|
}
|
|
@@ -17,13 +29,13 @@ var useComputeRuntime = (id) => {
|
|
|
17
29
|
};
|
|
18
30
|
|
|
19
31
|
// src/hooks/useComputeRuntimeCallback.ts
|
|
20
|
-
var useComputeRuntimeCallback = (id,
|
|
32
|
+
var useComputeRuntimeCallback = (id, operation, deps) => {
|
|
21
33
|
const runtime = useComputeRuntime(id);
|
|
22
34
|
return useCallback(() => {
|
|
23
35
|
if (!runtime) {
|
|
24
36
|
throw new TypeError("Space not provided to useComputeRuntimeCallback");
|
|
25
37
|
}
|
|
26
|
-
return runtime.runPromise(
|
|
38
|
+
return runtime.runPromise(operation());
|
|
27
39
|
}, [
|
|
28
40
|
runtime,
|
|
29
41
|
...deps ?? []
|
|
@@ -33,19 +45,19 @@ var useComputeRuntimeCallback = (id, fn, deps) => {
|
|
|
33
45
|
// src/hooks/useTriggerRuntimeControls.ts
|
|
34
46
|
import { Atom, useAtomValue } from "@effect-atom/atom-react";
|
|
35
47
|
import * as Effect from "effect/Effect";
|
|
36
|
-
import { useEffect, useState } from "react";
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
48
|
+
import { useEffect as useEffect2, useState } from "react";
|
|
49
|
+
import { Trigger } from "@dxos/compute";
|
|
50
|
+
import { Filter, Query } from "@dxos/echo";
|
|
39
51
|
import { TriggerDispatcher } from "@dxos/functions-runtime";
|
|
40
52
|
import { useQuery } from "@dxos/react-client/echo";
|
|
41
53
|
var useTriggerRuntimeControls = (db) => {
|
|
42
|
-
const triggers = useQuery(db, Filter.type(Trigger.Trigger));
|
|
54
|
+
const triggers = useQuery(db, Query.select(Filter.type(Trigger.Trigger)).debugLabel("plugin-automation.useTriggerRuntimeControls"));
|
|
43
55
|
const [dispatcher, setDispatcher] = useState(void 0);
|
|
44
56
|
const init = useComputeRuntimeCallback(db?.spaceId, Effect.fnUntraced(function* () {
|
|
45
57
|
const dispatcher2 = yield* TriggerDispatcher;
|
|
46
58
|
setDispatcher(dispatcher2);
|
|
47
59
|
}));
|
|
48
|
-
|
|
60
|
+
useEffect2(() => {
|
|
49
61
|
void init();
|
|
50
62
|
}, []);
|
|
51
63
|
const state = useAtomValue(dispatcher?.state ?? Atom.make(void 0));
|
|
@@ -66,17 +78,47 @@ var useTriggerRuntimeControls = (db) => {
|
|
|
66
78
|
};
|
|
67
79
|
|
|
68
80
|
// src/hooks/useComputeRuntimeService.ts
|
|
69
|
-
import
|
|
70
|
-
import
|
|
81
|
+
import * as Effect2 from "effect/Effect";
|
|
82
|
+
import * as Exit from "effect/Exit";
|
|
83
|
+
import { useEffect as useEffect3, useState as useState2 } from "react";
|
|
84
|
+
import { log as log2 } from "@dxos/log";
|
|
85
|
+
var __dxlog_file2 = "/__w/dxos/dxos/packages/plugins/plugin-automation/src/hooks/useComputeRuntimeService.ts";
|
|
71
86
|
var useComputeRuntimeService = (tag, spaceId) => {
|
|
72
87
|
const runtime = useComputeRuntime(spaceId);
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
88
|
+
const [service, setService] = useState2(void 0);
|
|
89
|
+
useEffect3(() => {
|
|
90
|
+
setService(void 0);
|
|
91
|
+
if (!runtime) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
let cancelled = false;
|
|
95
|
+
void (async () => {
|
|
96
|
+
try {
|
|
97
|
+
const exit = await runtime.runPromiseExit(tag.pipe(Effect2.timeout("30 seconds")));
|
|
98
|
+
if (cancelled) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
if (Exit.isSuccess(exit)) {
|
|
102
|
+
setService(exit.value);
|
|
103
|
+
} else {
|
|
104
|
+
log2.warn("useComputeRuntimeService: failed to acquire service", {
|
|
105
|
+
cause: exit.cause
|
|
106
|
+
}, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 37, S: void 0 });
|
|
107
|
+
}
|
|
108
|
+
} catch (error) {
|
|
109
|
+
if (!cancelled) {
|
|
110
|
+
log2.catch(error, void 0, { "~LogMeta": "~LogMeta", F: __dxlog_file2, L: 43, S: void 0 });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
})();
|
|
114
|
+
return () => {
|
|
115
|
+
cancelled = true;
|
|
116
|
+
};
|
|
117
|
+
}, [
|
|
77
118
|
runtime,
|
|
78
119
|
tag
|
|
79
|
-
])
|
|
120
|
+
]);
|
|
121
|
+
return service;
|
|
80
122
|
};
|
|
81
123
|
export {
|
|
82
124
|
useComputeRuntime,
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/hooks/useComputeRuntimeCallback.ts", "../../../../src/hooks/useComputeRuntime.ts", "../../../../src/hooks/useTriggerRuntimeControls.ts", "../../../../src/hooks/useComputeRuntimeService.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport { type DependencyList, useCallback } from 'react';\n\nimport { type Key } from '@dxos/echo';\n\nimport { AutomationCapabilities } from '#types';\n\nimport { useComputeRuntime } from './useComputeRuntime';\n\n/**\n * Create an effectful function that has access to compute services\n */\nexport const useComputeRuntimeCallback = <T>(\n id: Key.SpaceId | undefined,\n operation: () => Effect.Effect<T, any, AutomationCapabilities.ComputeServices>,\n deps?: DependencyList,\n): (() => Promise<T>) => {\n const runtime = useComputeRuntime(id);\n\n return useCallback(() => {\n if (!runtime) {\n throw new TypeError('Space not provided to useComputeRuntimeCallback');\n }\n\n return runtime.runPromise(operation());\n }, [runtime, ...(deps ?? [])]);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useEffect } from 'react';\n\nimport { useCapabilities } from '@dxos/app-framework/ui';\nimport { SpaceId } from '@dxos/keys';\nimport { log } from '@dxos/log';\n\nimport { AutomationCapabilities } from '../types';\n\n/**\n * Resolves the compute runtime for a space.\n * Returns undefined if the AutomationPlugin is not loaded or spaceId is not provided.\n */\nexport const useComputeRuntime = (id: SpaceId | undefined): AutomationCapabilities.ComputeRuntime | undefined => {\n const [computeRuntime] = useCapabilities(AutomationCapabilities.ComputeRuntime);\n // One log per change of (capability availability, spaceId) so we can see when\n // the React subscription actually observes the contributed runtime.\n useEffect(() => {\n log('useComputeRuntime', { hasCapability: !!computeRuntime, spaceId: id });\n }, [!!computeRuntime, id]);\n\n if (!computeRuntime || id === undefined) {\n return undefined;\n }\n\n return computeRuntime.getRuntime(id);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom, useAtomValue } from '@effect-atom/atom-react';\nimport type * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\nimport { useEffect, useState } from 'react';\n\nimport { Trigger } from '@dxos/compute';\nimport { type Database, Filter, Query } from '@dxos/echo';\nimport { TriggerDispatcher, type TriggerDispatcherState } from '@dxos/functions-runtime';\nimport { useQuery } from '@dxos/react-client/echo';\n\nimport { useComputeRuntimeCallback } from './useComputeRuntimeCallback';\n\ninterface TriggerRuntimeControls {\n triggers: Trigger.Trigger[];\n\n state: TriggerDispatcherState | undefined;\n\n start: () => void;\n stop: () => void;\n}\n\nexport const useTriggerRuntimeControls = (db: Database.Database | undefined): TriggerRuntimeControls => {\n const triggers = useQuery(\n db,\n Query.select(Filter.type(Trigger.Trigger)).debugLabel('plugin-automation.useTriggerRuntimeControls'),\n );\n\n const [dispatcher, setDispatcher] = useState<Context.Tag.Service<TriggerDispatcher> | undefined>(undefined);\n\n const init = useComputeRuntimeCallback(\n db?.spaceId,\n Effect.fnUntraced(function* () {\n const dispatcher = yield* TriggerDispatcher;\n setDispatcher(dispatcher);\n }),\n );\n\n useEffect(() => {\n void init();\n }, []);\n\n const state = useAtomValue(dispatcher?.state ?? Atom.make(undefined));\n\n const start = useComputeRuntimeCallback(\n db?.spaceId,\n Effect.fnUntraced(function* () {\n const dispatcher = yield* TriggerDispatcher;\n yield* dispatcher.start();\n }),\n );\n\n const stop = useComputeRuntimeCallback(\n db?.spaceId,\n Effect.fnUntraced(function* () {\n const dispatcher = yield* TriggerDispatcher;\n yield* dispatcher.stop();\n }),\n );\n\n return {\n triggers,\n state,\n start: () => void start(),\n stop: () => void stop(),\n };\n};\n", "//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\nimport * as Exit from 'effect/Exit';\nimport { useEffect, useState } from 'react';\n\nimport { SpaceId } from '@dxos/keys';\nimport { log } from '@dxos/log';\n\nimport { useComputeRuntime } from './useComputeRuntime';\n\ntype ResolvedService<T extends Context.Tag<any, any>> = Context.Tag.Service<T> | undefined;\n\n/**\n * Resolves a service from the compute runtime for a given space.\n *\n * NOTE: Previously implemented via `use(useMemo(() => runtime.runPromiseExit(...)))`.\n * React's `use()` is weird and unreliable in production builds — the Suspense\n * boundary can stay pending indefinitely without the promise ever resolving\n * from React's perspective (the runtime is built lazily on first invocation\n * and one of its `acquire` steps can block). This `useState` + `useEffect`\n * flavour avoids suspension entirely: the hook returns `undefined` while the\n * service is being acquired or if acquisition fails / times out.\n */\nexport const useComputeRuntimeService = <T extends Context.Tag<any, any>>(\n tag: T,\n spaceId?: SpaceId,\n): ResolvedService<T> => {\n const runtime = useComputeRuntime(spaceId);\n const [service, setService] = useState<ResolvedService<T>>(undefined);\n\n useEffect(() => {\n setService(undefined);\n if (!runtime) {\n return;\n }\n let cancelled = false;\n void (async () => {\n try {\n const exit = await runtime.runPromiseExit(tag.pipe(Effect.timeout('30 seconds')));\n if (cancelled) {\n return;\n }\n if (Exit.isSuccess(exit)) {\n setService(exit.value);\n } else {\n log.warn('useComputeRuntimeService: failed to acquire service', { cause: exit.cause });\n }\n } catch (error) {\n if (!cancelled) {\n log.catch(error);\n }\n }\n })();\n return () => {\n cancelled = true;\n };\n }, [runtime, tag]);\n\n return service;\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["useCallback", "useEffect", "useCapabilities", "log", "hasCapability", "spaceId", "id", "computeRuntime", "useComputeRuntimeCallback", "id", "operation", "deps", "runtime", "useComputeRuntime", "useCallback", "TypeError", "runPromise", "Atom", "useAtomValue", "Effect", "useEffect", "useState", "Trigger", "Filter", "Query", "TriggerDispatcher", "useQuery", "useTriggerRuntimeControls", "db", "triggers", "useQuery", "Query", "select", "Filter", "type", "Trigger", "debugLabel", "dispatcher", "setDispatcher", "useState", "undefined", "init", "useComputeRuntimeCallback", "spaceId", "fnUntraced", "TriggerDispatcher", "useEffect", "state", "useAtomValue", "Atom", "make", "start", "stop", "Effect", "Exit", "useEffect", "useState", "log", "__dxlog_file", "service", "undefined", "useEffect", "setService", "runtime", "cancelled", "exit", "Exit", "log", "error", "catch"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import {
|
|
2
|
+
meta
|
|
3
|
+
} from "./chunk-ATECY555.mjs";
|
|
4
|
+
import {
|
|
5
|
+
AutomationAction,
|
|
6
|
+
AutomationCapabilities_exports,
|
|
7
|
+
AutomationEvents_exports,
|
|
8
|
+
AutomationOperation_exports,
|
|
9
|
+
TriggerTemplate
|
|
10
|
+
} from "./chunk-DSCOLDT5.mjs";
|
|
11
|
+
import "./chunk-J5LGTIGS.mjs";
|
|
12
|
+
export {
|
|
13
|
+
AutomationAction,
|
|
14
|
+
AutomationCapabilities_exports as AutomationCapabilities,
|
|
15
|
+
AutomationEvents_exports as AutomationEvents,
|
|
16
|
+
AutomationOperation_exports as AutomationOperation,
|
|
17
|
+
TriggerTemplate,
|
|
18
|
+
meta
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=index.mjs.map
|