@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,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 { Context, Effect, Layer, Option } from "effect";
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, value) {
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] = value;
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: 78,
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 { HttpClient, HttpClientRequest } from "@effect/platform";
160
- import { Context as Context3, Effect as Effect3, Layer as Layer3, Redacted } from "effect";
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 _define_property3(obj, key, value) {
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] = value;
160
+ obj[key] = value2;
173
161
  }
174
162
  return obj;
175
163
  }
176
- var _Context_Tag3;
177
- var CredentialsService = class extends (_Context_Tag3 = Context3.Tag("@dxos/functions/CredentialsService")()) {
164
+ var _Context_Tag2;
165
+ var CredentialsService = class extends (_Context_Tag2 = Context2.Tag("@dxos/functions/CredentialsService")()) {
178
166
  };
179
- _define_property3(CredentialsService, "getCredential", (query) => Effect3.gen(function* () {
167
+ _define_property2(CredentialsService, "getCredential", (query) => Effect2.gen(function* () {
180
168
  const credentials = yield* CredentialsService;
181
- return yield* Effect3.promise(() => credentials.getCredential(query));
169
+ return yield* Effect2.promise(() => credentials.getCredential(query));
182
170
  }));
183
- _define_property3(CredentialsService, "getApiKey", (query) => Effect3.gen(function* () {
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
- _define_property3(CredentialsService, "configuredLayer", (credentials) => Layer3.succeed(CredentialsService, new ConfiguredCredentialsService(credentials)));
191
- _define_property3(CredentialsService, "layerConfig", (credentials) => Layer3.effect(CredentialsService, Effect3.gen(function* () {
192
- const serviceCredentials = yield* Effect3.forEach(credentials, ({ service, apiKey }) => Effect3.gen(function* () {
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
- _define_property3(CredentialsService, "layerFromDatabase", () => Layer3.effect(CredentialsService, Effect3.gen(function* () {
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
- _define_property3(this, "credentials", void 0);
226
+ _define_property2(this, "credentials", void 0);
239
227
  this.credentials = credentials;
240
228
  }
241
229
  };
242
- var withAuthorization = (query, kind) => HttpClient.mapRequestEffect(Effect3.fnUntraced(function* (request) {
243
- const key = yield* CredentialsService.getApiKey(query).pipe(Effect3.map(Redacted.value));
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 { Context as Context4, Effect as Effect4, Layer as Layer4 } from "effect";
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 _define_property4(obj, key, value) {
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] = value;
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 _Context_Tag4;
269
- var TracingService = class extends (_Context_Tag4 = Context4.Tag("@dxos/functions/TracingService")()) {
258
+ var _Context_Tag3;
259
+ var TracingService = class extends (_Context_Tag3 = Context3.Tag("@dxos/functions/TracingService")()) {
270
260
  };
271
- _define_property4(TracingService, "noop", {
261
+ _define_property3(TracingService, "noop", {
272
262
  write: () => {
273
263
  },
274
264
  getTraceContext: () => ({})
275
265
  });
276
- _define_property4(TracingService, "layerNoop", Layer4.succeed(TracingService, TracingService.noop));
277
- _define_property4(TracingService, "console", {
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
- _define_property4(TracingService, "layerConsole", Layer4.succeed(TracingService, TracingService.console));
284
- _define_property4(TracingService, "layerLogInfo", () => Layer4.succeed(TracingService, {
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: 51,
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
- _define_property4(TracingService, "layerSubframe", (mapContext) => Layer4.effect(TracingService, Effect4.gen(function* () {
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
- _define_property4(TracingService, "layerQueue", (queue) => Layer4.effect(TracingService, Effect4.gen(function* () {
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
- _define_property4(TracingService, "emitStatus", Effect4.fnUntraced(function* (data) {
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
- _define_property4(TracingService, "emitConverationMessage", Effect4.fnUntraced(function* (data) {
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 { Context as Context5, Effect as Effect5, Layer as Layer5, Schema } from "effect";
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 _define_property5(obj, key, value) {
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] = value;
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 _Context_Tag5;
395
- var ComputeEventLogger = class extends (_Context_Tag5 = Context5.Tag("@dxos/functions/ComputeEventLogger")()) {
388
+ var _Context_Tag4;
389
+ var ComputeEventLogger = class extends (_Context_Tag4 = Context4.Tag("@dxos/functions/ComputeEventLogger")()) {
396
390
  };
397
- _define_property5(ComputeEventLogger, "noop", {
391
+ _define_property4(ComputeEventLogger, "noop", {
398
392
  log: () => {
399
393
  },
400
394
  nodeId: void 0
401
395
  });
402
- _define_property5(ComputeEventLogger, "layerFromTracing", Layer5.effect(ComputeEventLogger, Effect5.gen(function* () {
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) => Effect5.gen(function* () {
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 = () => Effect5.catchAll((error) => Effect5.gen(function* () {
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: 93,
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: 111,
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 { Context as Context6, Layer as Layer6 } from "effect";
462
- function _define_property6(obj, key, value) {
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] = value;
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: async (deployedFunctionId, input) => {
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 = await fetch(url, {
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
- throw new Error("Failed to invoke function", {
492
- cause: new Error(`HTTP error: ${await result.text()}`)
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
- return await result.json();
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: async (deployedFunctionId, input) => {
503
- return input;
504
- }
554
+ callFunction: (deployedFunctionId, input) => Effect6.succeed(input)
505
555
  };
506
556
  });
507
- _define_property6(RemoteFunctionExecutionService, "mockLayer", Layer6.succeed(RemoteFunctionExecutionService, RemoteFunctionExecutionService.mock()));
557
+ _define_property6(RemoteFunctionExecutionService, "layerMock", Layer6.succeed(RemoteFunctionExecutionService, RemoteFunctionExecutionService.mock()));
508
558
 
509
559
  // src/services/service-container.ts
510
- import { Layer as Layer7 } from "effect";
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, value) {
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] = value;
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-D2XO7XXY.mjs.map
665
+ //# sourceMappingURL=chunk-LKYT2SAL.mjs.map