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