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