@dxos/functions 0.8.4-main.e098934 → 0.8.4-main.ead640a
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/bundler/index.mjs +10 -6
- package/dist/lib/browser/bundler/index.mjs.map +3 -3
- package/dist/lib/browser/{chunk-D2XO7XXY.mjs → chunk-LKYT2SAL.mjs} +176 -122
- package/dist/lib/browser/chunk-LKYT2SAL.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +319 -199
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +11 -9
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/node-esm/bundler/index.mjs +10 -6
- package/dist/lib/node-esm/bundler/index.mjs.map +3 -3
- package/dist/lib/node-esm/{chunk-Z4CJ62WS.mjs → chunk-NAQIKLZB.mjs} +176 -122
- package/dist/lib/node-esm/chunk-NAQIKLZB.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +319 -199
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +11 -9
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/types/src/bundler/bundler.d.ts.map +1 -1
- package/dist/types/src/errors.d.ts +16 -16
- package/dist/types/src/examples/fib.d.ts.map +1 -1
- package/dist/types/src/examples/reply.d.ts.map +1 -1
- package/dist/types/src/examples/sleep.d.ts.map +1 -1
- package/dist/types/src/executor/executor.d.ts +3 -0
- package/dist/types/src/executor/executor.d.ts.map +1 -1
- package/dist/types/src/handler.d.ts +19 -4
- package/dist/types/src/handler.d.ts.map +1 -1
- package/dist/types/src/schema.d.ts +5 -5
- package/dist/types/src/schema.d.ts.map +1 -1
- package/dist/types/src/services/credentials.d.ts +6 -2
- package/dist/types/src/services/credentials.d.ts.map +1 -1
- package/dist/types/src/services/database.d.ts +6 -2
- package/dist/types/src/services/database.d.ts.map +1 -1
- package/dist/types/src/services/event-logger.d.ts +4 -1
- package/dist/types/src/services/event-logger.d.ts.map +1 -1
- package/dist/types/src/services/function-invocation-service.d.ts +28 -0
- package/dist/types/src/services/function-invocation-service.d.ts.map +1 -0
- package/dist/types/src/services/function-invocation-service.test.d.ts +2 -0
- package/dist/types/src/services/function-invocation-service.test.d.ts.map +1 -0
- package/dist/types/src/services/index.d.ts +4 -3
- package/dist/types/src/services/index.d.ts.map +1 -1
- package/dist/types/src/services/local-function-execution.d.ts +18 -9
- package/dist/types/src/services/local-function-execution.d.ts.map +1 -1
- package/dist/types/src/services/queues.d.ts +3 -1
- package/dist/types/src/services/queues.d.ts.map +1 -1
- package/dist/types/src/services/remote-function-execution-service.d.ts +11 -4
- package/dist/types/src/services/remote-function-execution-service.d.ts.map +1 -1
- package/dist/types/src/services/service-container.d.ts +2 -1
- package/dist/types/src/services/service-container.d.ts.map +1 -1
- package/dist/types/src/services/service-registry.d.ts +3 -1
- package/dist/types/src/services/service-registry.d.ts.map +1 -1
- package/dist/types/src/services/tracing.d.ts +5 -3
- package/dist/types/src/services/tracing.d.ts.map +1 -1
- package/dist/types/src/testing/layer.d.ts +6 -3
- package/dist/types/src/testing/layer.d.ts.map +1 -1
- package/dist/types/src/testing/logger.d.ts +1 -1
- package/dist/types/src/testing/logger.d.ts.map +1 -1
- package/dist/types/src/testing/services.d.ts +1 -1
- package/dist/types/src/testing/services.d.ts.map +1 -1
- package/dist/types/src/trace.d.ts +1 -1
- package/dist/types/src/trace.d.ts.map +1 -1
- package/dist/types/src/triggers/invocation-tracer.d.ts +3 -1
- package/dist/types/src/triggers/invocation-tracer.d.ts.map +1 -1
- package/dist/types/src/triggers/trigger-dispatcher.d.ts +7 -4
- package/dist/types/src/triggers/trigger-dispatcher.d.ts.map +1 -1
- package/dist/types/src/triggers/trigger-state-store.d.ts +5 -4
- package/dist/types/src/triggers/trigger-state-store.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +49 -30
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/src/url.d.ts +1 -1
- package/dist/types/src/url.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +27 -36
- package/src/bundler/bundler.ts +7 -3
- package/src/examples/fib.ts +4 -2
- package/src/examples/reply.ts +5 -2
- package/src/examples/sleep.ts +4 -2
- package/src/executor/executor.ts +5 -1
- package/src/handler.ts +33 -9
- package/src/schema.ts +5 -2
- package/src/services/credentials.ts +9 -2
- package/src/services/database.ts +6 -2
- package/src/services/event-logger.ts +4 -1
- package/src/services/function-invocation-service.test.ts +81 -0
- package/src/services/function-invocation-service.ts +84 -0
- package/src/services/index.ts +4 -3
- package/src/services/local-function-execution.ts +65 -26
- package/src/services/queues.ts +3 -1
- package/src/services/remote-function-execution-service.ts +38 -21
- package/src/services/service-container.ts +2 -1
- package/src/services/service-registry.test.ts +4 -1
- package/src/services/service-registry.ts +7 -3
- package/src/services/tracing.ts +17 -14
- package/src/testing/layer.ts +10 -7
- package/src/testing/logger.ts +2 -1
- package/src/testing/persist-database.test.ts +4 -4
- package/src/testing/services.ts +1 -1
- package/src/trace.ts +2 -2
- package/src/triggers/invocation-tracer.ts +3 -1
- package/src/triggers/trigger-dispatcher.test.ts +29 -16
- package/src/triggers/trigger-dispatcher.ts +29 -8
- package/src/triggers/trigger-state-store.ts +6 -5
- package/src/types.ts +30 -12
- package/src/url.ts +1 -1
- package/dist/lib/browser/chunk-D2XO7XXY.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-Z4CJ62WS.mjs.map +0 -7
|
@@ -1,3 +1,30 @@
|
|
|
1
|
+
// src/errors.ts
|
|
2
|
+
import { BaseError } from "@dxos/errors";
|
|
3
|
+
var ServiceNotAvailableError = class extends BaseError.extend("SERVICE_NOT_AVAILABLE", "Service not available") {
|
|
4
|
+
constructor(service, options) {
|
|
5
|
+
super({
|
|
6
|
+
context: {
|
|
7
|
+
service
|
|
8
|
+
},
|
|
9
|
+
...options
|
|
10
|
+
});
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
var FunctionNotFoundError = class extends BaseError.extend("FUNCTION_NOT_FOUND", "Function not found") {
|
|
14
|
+
constructor(functionKey, options) {
|
|
15
|
+
super({
|
|
16
|
+
context: {
|
|
17
|
+
function: functionKey
|
|
18
|
+
},
|
|
19
|
+
...options
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
var FunctionError = class extends BaseError.extend("FUNCTION_ERROR", "Function invocation error") {
|
|
24
|
+
};
|
|
25
|
+
var TriggerStateNotFoundError = class extends BaseError.extend("TRIGGER_STATE_NOT_FOUND", "Trigger state not found") {
|
|
26
|
+
};
|
|
27
|
+
|
|
1
28
|
// src/url.ts
|
|
2
29
|
var FUNCTIONS_META_KEY = "dxos.org/service/function";
|
|
3
30
|
var FUNCTIONS_PRESET_META_KEY = "dxos.org/service/function-preset";
|
|
@@ -30,20 +57,23 @@ var getInvocationUrl = (functionId, edgeUrl, options = {}) => {
|
|
|
30
57
|
};
|
|
31
58
|
|
|
32
59
|
// src/services/database.ts
|
|
33
|
-
import
|
|
60
|
+
import * as Context from "effect/Context";
|
|
61
|
+
import * as Effect from "effect/Effect";
|
|
62
|
+
import * as Layer from "effect/Layer";
|
|
63
|
+
import * as Option from "effect/Option";
|
|
34
64
|
import { Obj, ObjectNotFoundError } from "@dxos/echo";
|
|
35
65
|
import { promiseWithCauseCapture } from "@dxos/effect";
|
|
36
66
|
import { invariant } from "@dxos/invariant";
|
|
37
|
-
function _define_property(obj, key,
|
|
67
|
+
function _define_property(obj, key, value2) {
|
|
38
68
|
if (key in obj) {
|
|
39
69
|
Object.defineProperty(obj, key, {
|
|
40
|
-
value,
|
|
70
|
+
value: value2,
|
|
41
71
|
enumerable: true,
|
|
42
72
|
configurable: true,
|
|
43
73
|
writable: true
|
|
44
74
|
});
|
|
45
75
|
} else {
|
|
46
|
-
obj[key] =
|
|
76
|
+
obj[key] = value2;
|
|
47
77
|
}
|
|
48
78
|
return obj;
|
|
49
79
|
}
|
|
@@ -78,7 +108,7 @@ _define_property(DatabaseService, "resolve", (dxn, schema) => Effect.gen(functio
|
|
|
78
108
|
}
|
|
79
109
|
invariant(!schema || Obj.instanceOf(schema, object), "Object type mismatch.", {
|
|
80
110
|
F: __dxlog_file,
|
|
81
|
-
L:
|
|
111
|
+
L: 82,
|
|
82
112
|
S: this,
|
|
83
113
|
A: [
|
|
84
114
|
"!schema || Obj.instanceOf(schema, object)",
|
|
@@ -109,87 +139,45 @@ _define_property(DatabaseService, "runQuery", (queryOrFilter) => DatabaseService
|
|
|
109
139
|
_define_property(DatabaseService, "schemaQuery", (query) => DatabaseService.pipe(Effect.map(({ db }) => db.schemaRegistry.query(query)), Effect.withSpan("DatabaseService.schemaQuery")));
|
|
110
140
|
_define_property(DatabaseService, "runSchemaQuery", (query) => DatabaseService.schemaQuery(query).pipe(Effect.flatMap((queryResult) => promiseWithCauseCapture(() => queryResult.run()))));
|
|
111
141
|
|
|
112
|
-
// src/services/queues.ts
|
|
113
|
-
import { Context as Context2, Effect as Effect2, Layer as Layer2 } from "effect";
|
|
114
|
-
function _define_property2(obj, key, value) {
|
|
115
|
-
if (key in obj) {
|
|
116
|
-
Object.defineProperty(obj, key, {
|
|
117
|
-
value,
|
|
118
|
-
enumerable: true,
|
|
119
|
-
configurable: true,
|
|
120
|
-
writable: true
|
|
121
|
-
});
|
|
122
|
-
} else {
|
|
123
|
-
obj[key] = value;
|
|
124
|
-
}
|
|
125
|
-
return obj;
|
|
126
|
-
}
|
|
127
|
-
var _Context_Tag2;
|
|
128
|
-
var QueueService = class extends (_Context_Tag2 = Context2.Tag("@dxos/functions/QueueService")()) {
|
|
129
|
-
};
|
|
130
|
-
_define_property2(QueueService, "notAvailable", Layer2.succeed(QueueService, {
|
|
131
|
-
queues: {
|
|
132
|
-
get(_dxn) {
|
|
133
|
-
throw new Error("Queues not available");
|
|
134
|
-
},
|
|
135
|
-
create() {
|
|
136
|
-
throw new Error("Queues not available");
|
|
137
|
-
}
|
|
138
|
-
},
|
|
139
|
-
queue: void 0
|
|
140
|
-
}));
|
|
141
|
-
_define_property2(QueueService, "make", (queues, queue) => {
|
|
142
|
-
return {
|
|
143
|
-
queues,
|
|
144
|
-
queue
|
|
145
|
-
};
|
|
146
|
-
});
|
|
147
|
-
_define_property2(QueueService, "layer", (queues, queue) => Layer2.succeed(QueueService, QueueService.make(queues, queue)));
|
|
148
|
-
_define_property2(QueueService, "getQueue", (dxn) => QueueService.pipe(Effect2.map(({ queues }) => queues.get(dxn))));
|
|
149
|
-
_define_property2(QueueService, "createQueue", (options) => QueueService.pipe(Effect2.map(({ queues }) => queues.create(options))));
|
|
150
|
-
_define_property2(QueueService, "append", (queue, objects) => Effect2.promise(() => queue.append(objects)));
|
|
151
|
-
var _Context_Tag1;
|
|
152
|
-
var ContextQueueService = class extends (_Context_Tag1 = Context2.Tag("@dxos/functions/ContextQueueService")()) {
|
|
153
|
-
};
|
|
154
|
-
_define_property2(ContextQueueService, "layer", (queue) => Layer2.succeed(ContextQueueService, {
|
|
155
|
-
queue
|
|
156
|
-
}));
|
|
157
|
-
|
|
158
142
|
// src/services/credentials.ts
|
|
159
|
-
import
|
|
160
|
-
import
|
|
143
|
+
import * as HttpClient from "@effect/platform/HttpClient";
|
|
144
|
+
import * as HttpClientRequest from "@effect/platform/HttpClientRequest";
|
|
145
|
+
import * as Context2 from "effect/Context";
|
|
146
|
+
import * as Effect2 from "effect/Effect";
|
|
147
|
+
import * as Layer2 from "effect/Layer";
|
|
148
|
+
import * as Redacted from "effect/Redacted";
|
|
161
149
|
import { Query } from "@dxos/echo";
|
|
162
150
|
import { DataType } from "@dxos/schema";
|
|
163
|
-
function
|
|
151
|
+
function _define_property2(obj, key, value2) {
|
|
164
152
|
if (key in obj) {
|
|
165
153
|
Object.defineProperty(obj, key, {
|
|
166
|
-
value,
|
|
154
|
+
value: value2,
|
|
167
155
|
enumerable: true,
|
|
168
156
|
configurable: true,
|
|
169
157
|
writable: true
|
|
170
158
|
});
|
|
171
159
|
} else {
|
|
172
|
-
obj[key] =
|
|
160
|
+
obj[key] = value2;
|
|
173
161
|
}
|
|
174
162
|
return obj;
|
|
175
163
|
}
|
|
176
|
-
var
|
|
177
|
-
var CredentialsService = class extends (
|
|
164
|
+
var _Context_Tag2;
|
|
165
|
+
var CredentialsService = class extends (_Context_Tag2 = Context2.Tag("@dxos/functions/CredentialsService")()) {
|
|
178
166
|
};
|
|
179
|
-
|
|
167
|
+
_define_property2(CredentialsService, "getCredential", (query) => Effect2.gen(function* () {
|
|
180
168
|
const credentials = yield* CredentialsService;
|
|
181
|
-
return yield*
|
|
169
|
+
return yield* Effect2.promise(() => credentials.getCredential(query));
|
|
182
170
|
}));
|
|
183
|
-
|
|
171
|
+
_define_property2(CredentialsService, "getApiKey", (query) => Effect2.gen(function* () {
|
|
184
172
|
const credential = yield* CredentialsService.getCredential(query);
|
|
185
173
|
if (!credential.apiKey) {
|
|
186
174
|
throw new Error(`API key not found for service: ${query.service}`);
|
|
187
175
|
}
|
|
188
176
|
return Redacted.make(credential.apiKey);
|
|
189
177
|
}));
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
const serviceCredentials = yield*
|
|
178
|
+
_define_property2(CredentialsService, "configuredLayer", (credentials) => Layer2.succeed(CredentialsService, new ConfiguredCredentialsService(credentials)));
|
|
179
|
+
_define_property2(CredentialsService, "layerConfig", (credentials) => Layer2.effect(CredentialsService, Effect2.gen(function* () {
|
|
180
|
+
const serviceCredentials = yield* Effect2.forEach(credentials, ({ service, apiKey }) => Effect2.gen(function* () {
|
|
193
181
|
return {
|
|
194
182
|
service,
|
|
195
183
|
apiKey: Redacted.value(yield* apiKey)
|
|
@@ -197,7 +185,7 @@ _define_property3(CredentialsService, "layerConfig", (credentials) => Layer3.eff
|
|
|
197
185
|
}));
|
|
198
186
|
return new ConfiguredCredentialsService(serviceCredentials);
|
|
199
187
|
})));
|
|
200
|
-
|
|
188
|
+
_define_property2(CredentialsService, "layerFromDatabase", () => Layer2.effect(CredentialsService, Effect2.gen(function* () {
|
|
201
189
|
const dbService = yield* DatabaseService;
|
|
202
190
|
const queryCredentials = async (query) => {
|
|
203
191
|
const { objects: accessTokens } = await dbService.db.query(Query.type(DataType.AccessToken)).run();
|
|
@@ -235,60 +223,62 @@ var ConfiguredCredentialsService = class {
|
|
|
235
223
|
return credential;
|
|
236
224
|
}
|
|
237
225
|
constructor(credentials = []) {
|
|
238
|
-
|
|
226
|
+
_define_property2(this, "credentials", void 0);
|
|
239
227
|
this.credentials = credentials;
|
|
240
228
|
}
|
|
241
229
|
};
|
|
242
|
-
var withAuthorization = (query, kind) => HttpClient.mapRequestEffect(
|
|
243
|
-
const key = yield* CredentialsService.getApiKey(query).pipe(
|
|
230
|
+
var withAuthorization = (query, kind) => HttpClient.mapRequestEffect(Effect2.fnUntraced(function* (request) {
|
|
231
|
+
const key = yield* CredentialsService.getApiKey(query).pipe(Effect2.map(Redacted.value));
|
|
244
232
|
const authorization = kind ? `${kind} ${key}` : key;
|
|
245
233
|
return HttpClientRequest.setHeader(request, "Authorization", authorization);
|
|
246
234
|
}));
|
|
247
235
|
|
|
248
236
|
// src/services/tracing.ts
|
|
249
|
-
import
|
|
237
|
+
import * as Context3 from "effect/Context";
|
|
238
|
+
import * as Effect3 from "effect/Effect";
|
|
239
|
+
import * as Layer3 from "effect/Layer";
|
|
250
240
|
import { AgentStatus } from "@dxos/ai";
|
|
251
241
|
import { Obj as Obj2 } from "@dxos/echo";
|
|
252
242
|
import { log } from "@dxos/log";
|
|
253
243
|
import { DataType as DataType2 } from "@dxos/schema";
|
|
254
|
-
function
|
|
244
|
+
function _define_property3(obj, key, value2) {
|
|
255
245
|
if (key in obj) {
|
|
256
246
|
Object.defineProperty(obj, key, {
|
|
257
|
-
value,
|
|
247
|
+
value: value2,
|
|
258
248
|
enumerable: true,
|
|
259
249
|
configurable: true,
|
|
260
250
|
writable: true
|
|
261
251
|
});
|
|
262
252
|
} else {
|
|
263
|
-
obj[key] =
|
|
253
|
+
obj[key] = value2;
|
|
264
254
|
}
|
|
265
255
|
return obj;
|
|
266
256
|
}
|
|
267
257
|
var __dxlog_file2 = "/__w/dxos/dxos/packages/core/functions/src/services/tracing.ts";
|
|
268
|
-
var
|
|
269
|
-
var TracingService = class extends (
|
|
258
|
+
var _Context_Tag3;
|
|
259
|
+
var TracingService = class extends (_Context_Tag3 = Context3.Tag("@dxos/functions/TracingService")()) {
|
|
270
260
|
};
|
|
271
|
-
|
|
261
|
+
_define_property3(TracingService, "noop", {
|
|
272
262
|
write: () => {
|
|
273
263
|
},
|
|
274
264
|
getTraceContext: () => ({})
|
|
275
265
|
});
|
|
276
|
-
|
|
277
|
-
|
|
266
|
+
_define_property3(TracingService, "layerNoop", Layer3.succeed(TracingService, TracingService.noop));
|
|
267
|
+
_define_property3(TracingService, "console", {
|
|
278
268
|
write: (event) => {
|
|
279
269
|
console.log(event);
|
|
280
270
|
},
|
|
281
271
|
getTraceContext: () => ({})
|
|
282
272
|
});
|
|
283
|
-
|
|
284
|
-
|
|
273
|
+
_define_property3(TracingService, "layerConsole", Layer3.succeed(TracingService, TracingService.console));
|
|
274
|
+
_define_property3(TracingService, "layerLogInfo", () => Layer3.succeed(TracingService, {
|
|
285
275
|
write: (event) => {
|
|
286
276
|
if (Obj2.instanceOf(AgentStatus, event)) {
|
|
287
277
|
log.info("status", {
|
|
288
278
|
message: event.message
|
|
289
279
|
}, {
|
|
290
280
|
F: __dxlog_file2,
|
|
291
|
-
L:
|
|
281
|
+
L: 52,
|
|
292
282
|
S: TracingService,
|
|
293
283
|
C: (f, a) => f(...a)
|
|
294
284
|
});
|
|
@@ -296,7 +286,7 @@ _define_property4(TracingService, "layerLogInfo", () => Layer4.succeed(TracingSe
|
|
|
296
286
|
},
|
|
297
287
|
getTraceContext: () => ({})
|
|
298
288
|
}));
|
|
299
|
-
|
|
289
|
+
_define_property3(TracingService, "layerSubframe", (mapContext) => Layer3.effect(TracingService, Effect3.gen(function* () {
|
|
300
290
|
const tracing = yield* TracingService;
|
|
301
291
|
const context = mapContext(tracing.getTraceContext());
|
|
302
292
|
return {
|
|
@@ -304,7 +294,7 @@ _define_property4(TracingService, "layerSubframe", (mapContext) => Layer4.effect
|
|
|
304
294
|
getTraceContext: () => context
|
|
305
295
|
};
|
|
306
296
|
})));
|
|
307
|
-
|
|
297
|
+
_define_property3(TracingService, "layerQueue", (queue) => Layer3.effect(TracingService, Effect3.gen(function* () {
|
|
308
298
|
return {
|
|
309
299
|
write: (event) => queue.append([
|
|
310
300
|
event
|
|
@@ -316,15 +306,16 @@ _define_property4(TracingService, "layerQueue", (queue) => Layer4.effect(Tracing
|
|
|
316
306
|
})
|
|
317
307
|
};
|
|
318
308
|
})));
|
|
319
|
-
|
|
309
|
+
_define_property3(TracingService, "emitStatus", Effect3.fnUntraced(function* (data) {
|
|
320
310
|
const tracing = yield* TracingService;
|
|
321
311
|
tracing.write(Obj2.make(AgentStatus, {
|
|
322
312
|
parentMessage: tracing.getTraceContext().parentMessage,
|
|
323
313
|
toolCallId: tracing.getTraceContext().toolCallId,
|
|
314
|
+
created: (/* @__PURE__ */ new Date()).toISOString(),
|
|
324
315
|
...data
|
|
325
316
|
}));
|
|
326
317
|
}));
|
|
327
|
-
|
|
318
|
+
_define_property3(TracingService, "emitConverationMessage", Effect3.fnUntraced(function* (data) {
|
|
328
319
|
const tracing = yield* TracingService;
|
|
329
320
|
tracing.write(Obj2.make(DataType2.Message, {
|
|
330
321
|
parentMessage: tracing.getTraceContext().parentMessage,
|
|
@@ -338,20 +329,23 @@ _define_property4(TracingService, "emitConverationMessage", Effect4.fnUntraced(f
|
|
|
338
329
|
var MESSAGE_PROPERTY_TOOL_CALL_ID = "toolCallId";
|
|
339
330
|
|
|
340
331
|
// src/services/event-logger.ts
|
|
341
|
-
import
|
|
332
|
+
import * as Context4 from "effect/Context";
|
|
333
|
+
import * as Effect4 from "effect/Effect";
|
|
334
|
+
import * as Layer4 from "effect/Layer";
|
|
335
|
+
import * as Schema from "effect/Schema";
|
|
342
336
|
import { Obj as Obj3, Type } from "@dxos/echo";
|
|
343
337
|
import { invariant as invariant2 } from "@dxos/invariant";
|
|
344
338
|
import { LogLevel, log as log2 } from "@dxos/log";
|
|
345
|
-
function
|
|
339
|
+
function _define_property4(obj, key, value2) {
|
|
346
340
|
if (key in obj) {
|
|
347
341
|
Object.defineProperty(obj, key, {
|
|
348
|
-
value,
|
|
342
|
+
value: value2,
|
|
349
343
|
enumerable: true,
|
|
350
344
|
configurable: true,
|
|
351
345
|
writable: true
|
|
352
346
|
});
|
|
353
347
|
} else {
|
|
354
|
-
obj[key] =
|
|
348
|
+
obj[key] = value2;
|
|
355
349
|
}
|
|
356
350
|
return obj;
|
|
357
351
|
}
|
|
@@ -391,15 +385,15 @@ var ComputeEvent = Schema.Struct({
|
|
|
391
385
|
typename: "dxos.org/type/ComputeEvent",
|
|
392
386
|
version: "0.1.0"
|
|
393
387
|
}));
|
|
394
|
-
var
|
|
395
|
-
var ComputeEventLogger = class extends (
|
|
388
|
+
var _Context_Tag4;
|
|
389
|
+
var ComputeEventLogger = class extends (_Context_Tag4 = Context4.Tag("@dxos/functions/ComputeEventLogger")()) {
|
|
396
390
|
};
|
|
397
|
-
|
|
391
|
+
_define_property4(ComputeEventLogger, "noop", {
|
|
398
392
|
log: () => {
|
|
399
393
|
},
|
|
400
394
|
nodeId: void 0
|
|
401
395
|
});
|
|
402
|
-
|
|
396
|
+
_define_property4(ComputeEventLogger, "layerFromTracing", Layer4.effect(ComputeEventLogger, Effect4.gen(function* () {
|
|
403
397
|
const tracing = yield* TracingService;
|
|
404
398
|
return {
|
|
405
399
|
log: (event) => {
|
|
@@ -410,7 +404,7 @@ _define_property5(ComputeEventLogger, "layerFromTracing", Layer5.effect(ComputeE
|
|
|
410
404
|
nodeId: void 0
|
|
411
405
|
};
|
|
412
406
|
})));
|
|
413
|
-
var logCustomEvent = (data) =>
|
|
407
|
+
var logCustomEvent = (data) => Effect4.gen(function* () {
|
|
414
408
|
const logger = yield* ComputeEventLogger;
|
|
415
409
|
if (!logger.nodeId) {
|
|
416
410
|
throw new Error("logCustomEvent must be called within a node compute function");
|
|
@@ -421,12 +415,12 @@ var logCustomEvent = (data) => Effect5.gen(function* () {
|
|
|
421
415
|
event: data
|
|
422
416
|
});
|
|
423
417
|
});
|
|
424
|
-
var createDefectLogger = () =>
|
|
418
|
+
var createDefectLogger = () => Effect4.catchAll((error) => Effect4.gen(function* () {
|
|
425
419
|
log2.error("unhandled effect error", {
|
|
426
420
|
error
|
|
427
421
|
}, {
|
|
428
422
|
F: __dxlog_file3,
|
|
429
|
-
L:
|
|
423
|
+
L: 96,
|
|
430
424
|
S: this,
|
|
431
425
|
C: (f, a) => f(...a)
|
|
432
426
|
});
|
|
@@ -442,7 +436,7 @@ var createEventLogger = (level, message = "event") => {
|
|
|
442
436
|
}[level];
|
|
443
437
|
invariant2(logFunction, void 0, {
|
|
444
438
|
F: __dxlog_file3,
|
|
445
|
-
L:
|
|
439
|
+
L: 114,
|
|
446
440
|
S: void 0,
|
|
447
441
|
A: [
|
|
448
442
|
"logFunction",
|
|
@@ -457,69 +451,125 @@ var createEventLogger = (level, message = "event") => {
|
|
|
457
451
|
};
|
|
458
452
|
};
|
|
459
453
|
|
|
454
|
+
// src/services/queues.ts
|
|
455
|
+
import * as Context5 from "effect/Context";
|
|
456
|
+
import * as Effect5 from "effect/Effect";
|
|
457
|
+
import * as Layer5 from "effect/Layer";
|
|
458
|
+
function _define_property5(obj, key, value2) {
|
|
459
|
+
if (key in obj) {
|
|
460
|
+
Object.defineProperty(obj, key, {
|
|
461
|
+
value: value2,
|
|
462
|
+
enumerable: true,
|
|
463
|
+
configurable: true,
|
|
464
|
+
writable: true
|
|
465
|
+
});
|
|
466
|
+
} else {
|
|
467
|
+
obj[key] = value2;
|
|
468
|
+
}
|
|
469
|
+
return obj;
|
|
470
|
+
}
|
|
471
|
+
var _Context_Tag5;
|
|
472
|
+
var QueueService = class extends (_Context_Tag5 = Context5.Tag("@dxos/functions/QueueService")()) {
|
|
473
|
+
};
|
|
474
|
+
_define_property5(QueueService, "notAvailable", Layer5.succeed(QueueService, {
|
|
475
|
+
queues: {
|
|
476
|
+
get(_dxn) {
|
|
477
|
+
throw new Error("Queues not available");
|
|
478
|
+
},
|
|
479
|
+
create() {
|
|
480
|
+
throw new Error("Queues not available");
|
|
481
|
+
}
|
|
482
|
+
},
|
|
483
|
+
queue: void 0
|
|
484
|
+
}));
|
|
485
|
+
_define_property5(QueueService, "make", (queues, queue) => {
|
|
486
|
+
return {
|
|
487
|
+
queues,
|
|
488
|
+
queue
|
|
489
|
+
};
|
|
490
|
+
});
|
|
491
|
+
_define_property5(QueueService, "layer", (queues, queue) => Layer5.succeed(QueueService, QueueService.make(queues, queue)));
|
|
492
|
+
_define_property5(QueueService, "getQueue", (dxn) => QueueService.pipe(Effect5.map(({ queues }) => queues.get(dxn))));
|
|
493
|
+
_define_property5(QueueService, "createQueue", (options) => QueueService.pipe(Effect5.map(({ queues }) => queues.create(options))));
|
|
494
|
+
_define_property5(QueueService, "append", (queue, objects) => Effect5.promise(() => queue.append(objects)));
|
|
495
|
+
var _Context_Tag1;
|
|
496
|
+
var ContextQueueService = class extends (_Context_Tag1 = Context5.Tag("@dxos/functions/ContextQueueService")()) {
|
|
497
|
+
};
|
|
498
|
+
_define_property5(ContextQueueService, "layer", (queue) => Layer5.succeed(ContextQueueService, {
|
|
499
|
+
queue
|
|
500
|
+
}));
|
|
501
|
+
|
|
460
502
|
// src/services/remote-function-execution-service.ts
|
|
461
|
-
import
|
|
462
|
-
|
|
503
|
+
import * as Context6 from "effect/Context";
|
|
504
|
+
import * as Effect6 from "effect/Effect";
|
|
505
|
+
import * as Layer6 from "effect/Layer";
|
|
506
|
+
function _define_property6(obj, key, value2) {
|
|
463
507
|
if (key in obj) {
|
|
464
508
|
Object.defineProperty(obj, key, {
|
|
465
|
-
value,
|
|
509
|
+
value: value2,
|
|
466
510
|
enumerable: true,
|
|
467
511
|
configurable: true,
|
|
468
512
|
writable: true
|
|
469
513
|
});
|
|
470
514
|
} else {
|
|
471
|
-
obj[key] =
|
|
515
|
+
obj[key] = value2;
|
|
472
516
|
}
|
|
473
517
|
return obj;
|
|
474
518
|
}
|
|
475
519
|
var _Context_Tag6;
|
|
476
|
-
var RemoteFunctionExecutionService = class extends (_Context_Tag6 = Context6.Tag("@dxos/functions/RemoteFunctionExecutionService")()) {
|
|
520
|
+
var RemoteFunctionExecutionService = class _RemoteFunctionExecutionService extends (_Context_Tag6 = Context6.Tag("@dxos/functions/RemoteFunctionExecutionService")()) {
|
|
521
|
+
/**
|
|
522
|
+
* @param baseUrl URL of the EDGE server.
|
|
523
|
+
* @param spaceId - The space ID to invoke the function in. If not provided, the function will be without space context.
|
|
524
|
+
* @returns
|
|
525
|
+
*/
|
|
477
526
|
static fromClient(baseUrl, spaceId) {
|
|
478
|
-
return {
|
|
479
|
-
callFunction:
|
|
527
|
+
return Layer6.succeed(_RemoteFunctionExecutionService, {
|
|
528
|
+
callFunction: (deployedFunctionId, input) => Effect6.gen(function* () {
|
|
480
529
|
const url = getInvocationUrl(deployedFunctionId, baseUrl, {
|
|
481
530
|
spaceId
|
|
482
531
|
});
|
|
483
|
-
const result =
|
|
532
|
+
const result = yield* Effect6.promise(() => fetch(url, {
|
|
484
533
|
method: "POST",
|
|
485
534
|
headers: {
|
|
486
535
|
"Content-Type": "application/json"
|
|
487
536
|
},
|
|
488
537
|
body: JSON.stringify(input)
|
|
489
|
-
});
|
|
538
|
+
}));
|
|
490
539
|
if (result.status >= 300 || result.status < 200) {
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
540
|
+
const text = yield* Effect6.promise(() => result.text());
|
|
541
|
+
return yield* Effect6.die(new FunctionError({
|
|
542
|
+
message: "Failed to invoke function",
|
|
543
|
+
cause: new Error(`HTTP error: ${text}`)
|
|
544
|
+
}));
|
|
494
545
|
}
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
546
|
+
const data = yield* Effect6.promise(() => result.json());
|
|
547
|
+
return data;
|
|
548
|
+
})
|
|
549
|
+
});
|
|
498
550
|
}
|
|
499
551
|
};
|
|
500
552
|
_define_property6(RemoteFunctionExecutionService, "mock", () => {
|
|
501
553
|
return {
|
|
502
|
-
callFunction:
|
|
503
|
-
return input;
|
|
504
|
-
}
|
|
554
|
+
callFunction: (deployedFunctionId, input) => Effect6.succeed(input)
|
|
505
555
|
};
|
|
506
556
|
});
|
|
507
|
-
_define_property6(RemoteFunctionExecutionService, "
|
|
557
|
+
_define_property6(RemoteFunctionExecutionService, "layerMock", Layer6.succeed(RemoteFunctionExecutionService, RemoteFunctionExecutionService.mock()));
|
|
508
558
|
|
|
509
559
|
// src/services/service-container.ts
|
|
510
|
-
import
|
|
560
|
+
import * as Layer7 from "effect/Layer";
|
|
511
561
|
import { AiService } from "@dxos/ai";
|
|
512
562
|
import { entries } from "@dxos/util";
|
|
513
|
-
function _define_property7(obj, key,
|
|
563
|
+
function _define_property7(obj, key, value2) {
|
|
514
564
|
if (key in obj) {
|
|
515
565
|
Object.defineProperty(obj, key, {
|
|
516
|
-
value,
|
|
566
|
+
value: value2,
|
|
517
567
|
enumerable: true,
|
|
518
568
|
configurable: true,
|
|
519
569
|
writable: true
|
|
520
570
|
});
|
|
521
571
|
} else {
|
|
522
|
-
obj[key] =
|
|
572
|
+
obj[key] = value2;
|
|
523
573
|
}
|
|
524
574
|
return obj;
|
|
525
575
|
}
|
|
@@ -585,14 +635,16 @@ var ServiceContainer = class _ServiceContainer {
|
|
|
585
635
|
};
|
|
586
636
|
|
|
587
637
|
export {
|
|
638
|
+
ServiceNotAvailableError,
|
|
639
|
+
FunctionNotFoundError,
|
|
640
|
+
FunctionError,
|
|
641
|
+
TriggerStateNotFoundError,
|
|
588
642
|
FUNCTIONS_META_KEY,
|
|
589
643
|
FUNCTIONS_PRESET_META_KEY,
|
|
590
644
|
getUserFunctionIdInMetadata,
|
|
591
645
|
setUserFunctionIdInMetadata,
|
|
592
646
|
getInvocationUrl,
|
|
593
647
|
DatabaseService,
|
|
594
|
-
QueueService,
|
|
595
|
-
ContextQueueService,
|
|
596
648
|
CredentialsService,
|
|
597
649
|
ConfiguredCredentialsService,
|
|
598
650
|
withAuthorization,
|
|
@@ -604,8 +656,10 @@ export {
|
|
|
604
656
|
logCustomEvent,
|
|
605
657
|
createDefectLogger,
|
|
606
658
|
createEventLogger,
|
|
659
|
+
QueueService,
|
|
660
|
+
ContextQueueService,
|
|
607
661
|
RemoteFunctionExecutionService,
|
|
608
662
|
SERVICE_TAGS,
|
|
609
663
|
ServiceContainer
|
|
610
664
|
};
|
|
611
|
-
//# sourceMappingURL=chunk-
|
|
665
|
+
//# sourceMappingURL=chunk-LKYT2SAL.mjs.map
|