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