@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.
Files changed (106) hide show
  1. package/dist/lib/browser/bundler/index.mjs +10 -6
  2. package/dist/lib/browser/bundler/index.mjs.map +3 -3
  3. package/dist/lib/browser/{chunk-D2XO7XXY.mjs → chunk-LKYT2SAL.mjs} +176 -122
  4. package/dist/lib/browser/chunk-LKYT2SAL.mjs.map +7 -0
  5. package/dist/lib/browser/index.mjs +319 -199
  6. package/dist/lib/browser/index.mjs.map +4 -4
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/testing/index.mjs +11 -9
  9. package/dist/lib/browser/testing/index.mjs.map +3 -3
  10. package/dist/lib/node-esm/bundler/index.mjs +10 -6
  11. package/dist/lib/node-esm/bundler/index.mjs.map +3 -3
  12. package/dist/lib/node-esm/{chunk-Z4CJ62WS.mjs → chunk-NAQIKLZB.mjs} +176 -122
  13. package/dist/lib/node-esm/chunk-NAQIKLZB.mjs.map +7 -0
  14. package/dist/lib/node-esm/index.mjs +319 -199
  15. package/dist/lib/node-esm/index.mjs.map +4 -4
  16. package/dist/lib/node-esm/meta.json +1 -1
  17. package/dist/lib/node-esm/testing/index.mjs +11 -9
  18. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  19. package/dist/types/src/bundler/bundler.d.ts.map +1 -1
  20. package/dist/types/src/errors.d.ts +16 -16
  21. package/dist/types/src/examples/fib.d.ts.map +1 -1
  22. package/dist/types/src/examples/reply.d.ts.map +1 -1
  23. package/dist/types/src/examples/sleep.d.ts.map +1 -1
  24. package/dist/types/src/executor/executor.d.ts +3 -0
  25. package/dist/types/src/executor/executor.d.ts.map +1 -1
  26. package/dist/types/src/handler.d.ts +19 -4
  27. package/dist/types/src/handler.d.ts.map +1 -1
  28. package/dist/types/src/schema.d.ts +5 -5
  29. package/dist/types/src/schema.d.ts.map +1 -1
  30. package/dist/types/src/services/credentials.d.ts +6 -2
  31. package/dist/types/src/services/credentials.d.ts.map +1 -1
  32. package/dist/types/src/services/database.d.ts +6 -2
  33. package/dist/types/src/services/database.d.ts.map +1 -1
  34. package/dist/types/src/services/event-logger.d.ts +4 -1
  35. package/dist/types/src/services/event-logger.d.ts.map +1 -1
  36. package/dist/types/src/services/function-invocation-service.d.ts +28 -0
  37. package/dist/types/src/services/function-invocation-service.d.ts.map +1 -0
  38. package/dist/types/src/services/function-invocation-service.test.d.ts +2 -0
  39. package/dist/types/src/services/function-invocation-service.test.d.ts.map +1 -0
  40. package/dist/types/src/services/index.d.ts +4 -3
  41. package/dist/types/src/services/index.d.ts.map +1 -1
  42. package/dist/types/src/services/local-function-execution.d.ts +18 -9
  43. package/dist/types/src/services/local-function-execution.d.ts.map +1 -1
  44. package/dist/types/src/services/queues.d.ts +3 -1
  45. package/dist/types/src/services/queues.d.ts.map +1 -1
  46. package/dist/types/src/services/remote-function-execution-service.d.ts +11 -4
  47. package/dist/types/src/services/remote-function-execution-service.d.ts.map +1 -1
  48. package/dist/types/src/services/service-container.d.ts +2 -1
  49. package/dist/types/src/services/service-container.d.ts.map +1 -1
  50. package/dist/types/src/services/service-registry.d.ts +3 -1
  51. package/dist/types/src/services/service-registry.d.ts.map +1 -1
  52. package/dist/types/src/services/tracing.d.ts +5 -3
  53. package/dist/types/src/services/tracing.d.ts.map +1 -1
  54. package/dist/types/src/testing/layer.d.ts +6 -3
  55. package/dist/types/src/testing/layer.d.ts.map +1 -1
  56. package/dist/types/src/testing/logger.d.ts +1 -1
  57. package/dist/types/src/testing/logger.d.ts.map +1 -1
  58. package/dist/types/src/testing/services.d.ts +1 -1
  59. package/dist/types/src/testing/services.d.ts.map +1 -1
  60. package/dist/types/src/trace.d.ts +1 -1
  61. package/dist/types/src/trace.d.ts.map +1 -1
  62. package/dist/types/src/triggers/invocation-tracer.d.ts +3 -1
  63. package/dist/types/src/triggers/invocation-tracer.d.ts.map +1 -1
  64. package/dist/types/src/triggers/trigger-dispatcher.d.ts +7 -4
  65. package/dist/types/src/triggers/trigger-dispatcher.d.ts.map +1 -1
  66. package/dist/types/src/triggers/trigger-state-store.d.ts +5 -4
  67. package/dist/types/src/triggers/trigger-state-store.d.ts.map +1 -1
  68. package/dist/types/src/types.d.ts +49 -30
  69. package/dist/types/src/types.d.ts.map +1 -1
  70. package/dist/types/src/url.d.ts +1 -1
  71. package/dist/types/src/url.d.ts.map +1 -1
  72. package/dist/types/tsconfig.tsbuildinfo +1 -1
  73. package/package.json +27 -36
  74. package/src/bundler/bundler.ts +7 -3
  75. package/src/examples/fib.ts +4 -2
  76. package/src/examples/reply.ts +5 -2
  77. package/src/examples/sleep.ts +4 -2
  78. package/src/executor/executor.ts +5 -1
  79. package/src/handler.ts +33 -9
  80. package/src/schema.ts +5 -2
  81. package/src/services/credentials.ts +9 -2
  82. package/src/services/database.ts +6 -2
  83. package/src/services/event-logger.ts +4 -1
  84. package/src/services/function-invocation-service.test.ts +81 -0
  85. package/src/services/function-invocation-service.ts +84 -0
  86. package/src/services/index.ts +4 -3
  87. package/src/services/local-function-execution.ts +65 -26
  88. package/src/services/queues.ts +3 -1
  89. package/src/services/remote-function-execution-service.ts +38 -21
  90. package/src/services/service-container.ts +2 -1
  91. package/src/services/service-registry.test.ts +4 -1
  92. package/src/services/service-registry.ts +7 -3
  93. package/src/services/tracing.ts +17 -14
  94. package/src/testing/layer.ts +10 -7
  95. package/src/testing/logger.ts +2 -1
  96. package/src/testing/persist-database.test.ts +4 -4
  97. package/src/testing/services.ts +1 -1
  98. package/src/trace.ts +2 -2
  99. package/src/triggers/invocation-tracer.ts +3 -1
  100. package/src/triggers/trigger-dispatcher.test.ts +29 -16
  101. package/src/triggers/trigger-dispatcher.ts +29 -8
  102. package/src/triggers/trigger-state-store.ts +6 -5
  103. package/src/types.ts +30 -12
  104. package/src/url.ts +1 -1
  105. package/dist/lib/browser/chunk-D2XO7XXY.mjs.map +0 -7
  106. 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 { Context, Effect, Layer, Option } from "effect";
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, value) {
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] = value;
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: 78,
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 { HttpClient, HttpClientRequest } from "@effect/platform";
162
- import { Context as Context3, Effect as Effect3, Layer as Layer3, Redacted } from "effect";
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 _define_property3(obj, key, value) {
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] = value;
162
+ obj[key] = value2;
175
163
  }
176
164
  return obj;
177
165
  }
178
- var _Context_Tag3;
179
- var CredentialsService = class extends (_Context_Tag3 = Context3.Tag("@dxos/functions/CredentialsService")()) {
166
+ var _Context_Tag2;
167
+ var CredentialsService = class extends (_Context_Tag2 = Context2.Tag("@dxos/functions/CredentialsService")()) {
180
168
  };
181
- _define_property3(CredentialsService, "getCredential", (query) => Effect3.gen(function* () {
169
+ _define_property2(CredentialsService, "getCredential", (query) => Effect2.gen(function* () {
182
170
  const credentials = yield* CredentialsService;
183
- return yield* Effect3.promise(() => credentials.getCredential(query));
171
+ return yield* Effect2.promise(() => credentials.getCredential(query));
184
172
  }));
185
- _define_property3(CredentialsService, "getApiKey", (query) => Effect3.gen(function* () {
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
- _define_property3(CredentialsService, "configuredLayer", (credentials) => Layer3.succeed(CredentialsService, new ConfiguredCredentialsService(credentials)));
193
- _define_property3(CredentialsService, "layerConfig", (credentials) => Layer3.effect(CredentialsService, Effect3.gen(function* () {
194
- const serviceCredentials = yield* Effect3.forEach(credentials, ({ service, apiKey }) => Effect3.gen(function* () {
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
- _define_property3(CredentialsService, "layerFromDatabase", () => Layer3.effect(CredentialsService, Effect3.gen(function* () {
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
- _define_property3(this, "credentials", void 0);
228
+ _define_property2(this, "credentials", void 0);
241
229
  this.credentials = credentials;
242
230
  }
243
231
  };
244
- var withAuthorization = (query, kind) => HttpClient.mapRequestEffect(Effect3.fnUntraced(function* (request) {
245
- const key = yield* CredentialsService.getApiKey(query).pipe(Effect3.map(Redacted.value));
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 { Context as Context4, Effect as Effect4, Layer as Layer4 } from "effect";
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 _define_property4(obj, key, value) {
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] = value;
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 _Context_Tag4;
271
- var TracingService = class extends (_Context_Tag4 = Context4.Tag("@dxos/functions/TracingService")()) {
260
+ var _Context_Tag3;
261
+ var TracingService = class extends (_Context_Tag3 = Context3.Tag("@dxos/functions/TracingService")()) {
272
262
  };
273
- _define_property4(TracingService, "noop", {
263
+ _define_property3(TracingService, "noop", {
274
264
  write: () => {
275
265
  },
276
266
  getTraceContext: () => ({})
277
267
  });
278
- _define_property4(TracingService, "layerNoop", Layer4.succeed(TracingService, TracingService.noop));
279
- _define_property4(TracingService, "console", {
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
- _define_property4(TracingService, "layerConsole", Layer4.succeed(TracingService, TracingService.console));
286
- _define_property4(TracingService, "layerLogInfo", () => Layer4.succeed(TracingService, {
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: 51,
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
- _define_property4(TracingService, "layerSubframe", (mapContext) => Layer4.effect(TracingService, Effect4.gen(function* () {
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
- _define_property4(TracingService, "layerQueue", (queue) => Layer4.effect(TracingService, Effect4.gen(function* () {
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
- _define_property4(TracingService, "emitStatus", Effect4.fnUntraced(function* (data) {
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
- _define_property4(TracingService, "emitConverationMessage", Effect4.fnUntraced(function* (data) {
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 { Context as Context5, Effect as Effect5, Layer as Layer5, Schema } from "effect";
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 _define_property5(obj, key, value) {
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] = value;
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 _Context_Tag5;
397
- var ComputeEventLogger = class extends (_Context_Tag5 = Context5.Tag("@dxos/functions/ComputeEventLogger")()) {
390
+ var _Context_Tag4;
391
+ var ComputeEventLogger = class extends (_Context_Tag4 = Context4.Tag("@dxos/functions/ComputeEventLogger")()) {
398
392
  };
399
- _define_property5(ComputeEventLogger, "noop", {
393
+ _define_property4(ComputeEventLogger, "noop", {
400
394
  log: () => {
401
395
  },
402
396
  nodeId: void 0
403
397
  });
404
- _define_property5(ComputeEventLogger, "layerFromTracing", Layer5.effect(ComputeEventLogger, Effect5.gen(function* () {
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) => Effect5.gen(function* () {
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 = () => Effect5.catchAll((error) => Effect5.gen(function* () {
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: 93,
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: 111,
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 { Context as Context6, Layer as Layer6 } from "effect";
464
- function _define_property6(obj, key, value) {
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] = value;
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: async (deployedFunctionId, input) => {
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 = await fetch(url, {
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
- throw new Error("Failed to invoke function", {
494
- cause: new Error(`HTTP error: ${await result.text()}`)
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
- return await result.json();
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: async (deployedFunctionId, input) => {
505
- return input;
506
- }
556
+ callFunction: (deployedFunctionId, input) => Effect6.succeed(input)
507
557
  };
508
558
  });
509
- _define_property6(RemoteFunctionExecutionService, "mockLayer", Layer6.succeed(RemoteFunctionExecutionService, RemoteFunctionExecutionService.mock()));
559
+ _define_property6(RemoteFunctionExecutionService, "layerMock", Layer6.succeed(RemoteFunctionExecutionService, RemoteFunctionExecutionService.mock()));
510
560
 
511
561
  // src/services/service-container.ts
512
- import { Layer as Layer7 } from "effect";
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, value) {
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] = value;
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-Z4CJ62WS.mjs.map
667
+ //# sourceMappingURL=chunk-NAQIKLZB.mjs.map