@dxos/functions 0.8.4-main.67995b8 → 0.8.4-main.a4bbb77

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 (139) hide show
  1. package/dist/lib/browser/bundler/index.mjs +56 -38
  2. package/dist/lib/browser/bundler/index.mjs.map +3 -3
  3. package/dist/lib/browser/chunk-C2Z7LCJ2.mjs +649 -0
  4. package/dist/lib/browser/chunk-C2Z7LCJ2.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  6. package/dist/lib/browser/chunk-J5LGTIGS.mjs.map +7 -0
  7. package/dist/lib/browser/edge/index.mjs +22 -8
  8. package/dist/lib/browser/edge/index.mjs.map +3 -3
  9. package/dist/lib/browser/index.mjs +992 -127
  10. package/dist/lib/browser/index.mjs.map +4 -4
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/testing/index.mjs +76 -6
  13. package/dist/lib/browser/testing/index.mjs.map +3 -3
  14. package/dist/lib/node-esm/bundler/index.mjs +55 -38
  15. package/dist/lib/node-esm/bundler/index.mjs.map +3 -3
  16. package/dist/lib/node-esm/chunk-AH3AZM2U.mjs +651 -0
  17. package/dist/lib/node-esm/chunk-AH3AZM2U.mjs.map +7 -0
  18. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  19. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  20. package/dist/lib/node-esm/edge/index.mjs +21 -8
  21. package/dist/lib/node-esm/edge/index.mjs.map +3 -3
  22. package/dist/lib/node-esm/index.mjs +992 -127
  23. package/dist/lib/node-esm/index.mjs.map +4 -4
  24. package/dist/lib/node-esm/meta.json +1 -1
  25. package/dist/lib/node-esm/testing/index.mjs +76 -6
  26. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  27. package/dist/types/src/bundler/bundler.d.ts +11 -12
  28. package/dist/types/src/bundler/bundler.d.ts.map +1 -1
  29. package/dist/types/src/edge/functions.d.ts +3 -2
  30. package/dist/types/src/edge/functions.d.ts.map +1 -1
  31. package/dist/types/src/errors.d.ts +89 -20
  32. package/dist/types/src/errors.d.ts.map +1 -1
  33. package/dist/types/src/examples/fib.d.ts +7 -0
  34. package/dist/types/src/examples/fib.d.ts.map +1 -0
  35. package/dist/types/src/examples/index.d.ts +4 -0
  36. package/dist/types/src/examples/index.d.ts.map +1 -0
  37. package/dist/types/src/examples/reply.d.ts +3 -0
  38. package/dist/types/src/examples/reply.d.ts.map +1 -0
  39. package/dist/types/src/examples/sleep.d.ts +5 -0
  40. package/dist/types/src/examples/sleep.d.ts.map +1 -0
  41. package/dist/types/src/executor/executor.d.ts +7 -1
  42. package/dist/types/src/executor/executor.d.ts.map +1 -1
  43. package/dist/types/src/handler.d.ts +52 -8
  44. package/dist/types/src/handler.d.ts.map +1 -1
  45. package/dist/types/src/index.d.ts +3 -1
  46. package/dist/types/src/index.d.ts.map +1 -1
  47. package/dist/types/src/schema.d.ts +6 -1
  48. package/dist/types/src/schema.d.ts.map +1 -1
  49. package/dist/types/src/services/credentials.d.ts +15 -3
  50. package/dist/types/src/services/credentials.d.ts.map +1 -1
  51. package/dist/types/src/services/database.d.ts +39 -6
  52. package/dist/types/src/services/database.d.ts.map +1 -1
  53. package/dist/types/src/services/event-logger.d.ts +1 -1
  54. package/dist/types/src/services/event-logger.d.ts.map +1 -1
  55. package/dist/types/src/services/function-invocation-service.d.ts +26 -0
  56. package/dist/types/src/services/function-invocation-service.d.ts.map +1 -0
  57. package/dist/types/src/services/function-invocation-service.test.d.ts +2 -0
  58. package/dist/types/src/services/function-invocation-service.test.d.ts.map +1 -0
  59. package/dist/types/src/services/index.d.ts +4 -3
  60. package/dist/types/src/services/index.d.ts.map +1 -1
  61. package/dist/types/src/services/local-function-execution.d.ts +23 -2
  62. package/dist/types/src/services/local-function-execution.d.ts.map +1 -1
  63. package/dist/types/src/services/queues.d.ts +19 -5
  64. package/dist/types/src/services/queues.d.ts.map +1 -1
  65. package/dist/types/src/services/remote-function-execution-service.d.ts +9 -4
  66. package/dist/types/src/services/remote-function-execution-service.d.ts.map +1 -1
  67. package/dist/types/src/services/service-container.d.ts +1 -1
  68. package/dist/types/src/services/service-container.d.ts.map +1 -1
  69. package/dist/types/src/services/service-registry.d.ts.map +1 -1
  70. package/dist/types/src/services/tracing.d.ts +34 -3
  71. package/dist/types/src/services/tracing.d.ts.map +1 -1
  72. package/dist/types/src/testing/layer.d.ts +9 -2
  73. package/dist/types/src/testing/layer.d.ts.map +1 -1
  74. package/dist/types/src/testing/logger.d.ts.map +1 -1
  75. package/dist/types/src/testing/persist-database.test.d.ts +2 -0
  76. package/dist/types/src/testing/persist-database.test.d.ts.map +1 -0
  77. package/dist/types/src/testing/services.d.ts +1 -1
  78. package/dist/types/src/testing/services.d.ts.map +1 -1
  79. package/dist/types/src/trace.d.ts +20 -22
  80. package/dist/types/src/trace.d.ts.map +1 -1
  81. package/dist/types/src/triggers/index.d.ts +4 -0
  82. package/dist/types/src/triggers/index.d.ts.map +1 -0
  83. package/dist/types/src/triggers/input-builder.d.ts +3 -0
  84. package/dist/types/src/triggers/input-builder.d.ts.map +1 -0
  85. package/dist/types/src/triggers/invocation-tracer.d.ts +35 -0
  86. package/dist/types/src/triggers/invocation-tracer.d.ts.map +1 -0
  87. package/dist/types/src/triggers/trigger-dispatcher.d.ts +74 -0
  88. package/dist/types/src/triggers/trigger-dispatcher.d.ts.map +1 -0
  89. package/dist/types/src/triggers/trigger-dispatcher.test.d.ts +2 -0
  90. package/dist/types/src/triggers/trigger-dispatcher.test.d.ts.map +1 -0
  91. package/dist/types/src/triggers/trigger-state-store.d.ts +27 -0
  92. package/dist/types/src/triggers/trigger-state-store.d.ts.map +1 -0
  93. package/dist/types/src/types.d.ts +60 -250
  94. package/dist/types/src/types.d.ts.map +1 -1
  95. package/dist/types/src/url.d.ts +10 -6
  96. package/dist/types/src/url.d.ts.map +1 -1
  97. package/dist/types/tsconfig.tsbuildinfo +1 -1
  98. package/package.json +43 -43
  99. package/src/bundler/bundler.test.ts +8 -9
  100. package/src/bundler/bundler.ts +32 -33
  101. package/src/edge/functions.ts +8 -5
  102. package/src/errors.ts +13 -5
  103. package/src/examples/fib.ts +31 -0
  104. package/src/examples/index.ts +7 -0
  105. package/src/examples/reply.ts +19 -0
  106. package/src/examples/sleep.ts +23 -0
  107. package/src/executor/executor.ts +12 -9
  108. package/src/handler.ts +120 -18
  109. package/src/index.ts +3 -3
  110. package/src/schema.ts +11 -0
  111. package/src/services/credentials.ts +80 -5
  112. package/src/services/database.ts +115 -18
  113. package/src/services/event-logger.ts +2 -2
  114. package/src/services/function-invocation-service.test.ts +79 -0
  115. package/src/services/function-invocation-service.ts +82 -0
  116. package/src/services/index.ts +4 -3
  117. package/src/services/local-function-execution.ts +97 -17
  118. package/src/services/queues.ts +34 -10
  119. package/src/services/remote-function-execution-service.ts +38 -43
  120. package/src/services/service-container.ts +4 -3
  121. package/src/services/service-registry.ts +1 -1
  122. package/src/services/tracing.ts +106 -9
  123. package/src/testing/layer.ts +84 -3
  124. package/src/testing/logger.ts +1 -1
  125. package/src/testing/persist-database.test.ts +87 -0
  126. package/src/testing/services.ts +3 -2
  127. package/src/trace.ts +17 -19
  128. package/src/triggers/index.ts +7 -0
  129. package/src/triggers/input-builder.ts +35 -0
  130. package/src/triggers/invocation-tracer.ts +99 -0
  131. package/src/triggers/trigger-dispatcher.test.ts +651 -0
  132. package/src/triggers/trigger-dispatcher.ts +522 -0
  133. package/src/triggers/trigger-state-store.ts +60 -0
  134. package/src/types.ts +39 -36
  135. package/src/url.ts +13 -10
  136. package/dist/lib/browser/chunk-6PTFLPCO.mjs +0 -462
  137. package/dist/lib/browser/chunk-6PTFLPCO.mjs.map +0 -7
  138. package/dist/lib/node-esm/chunk-NYJ2TSXO.mjs +0 -464
  139. package/dist/lib/node-esm/chunk-NYJ2TSXO.mjs.map +0 -7
@@ -1 +1 @@
1
- {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../../src/trace.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,IAAI,EAAE,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAItC,OAAO,EAAE,eAAe,EAAE,KAAK,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEpE,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAGD,oBAAY,wBAAwB;IAClC,KAAK,UAAU;IACf,GAAG,QAAQ;CACZ;AAED,eAAO,MAAM,mBAAmB;;;;;EAK9B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEjF,eAAO,MAAM,yBAAyB;IACpC;;OAEG;;;IAGH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAGH;;OAEG;;IAEH;;OAEG;;;;;IAEH;;OAEG;;GAEkF,CAAC;AAExF,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE7F,eAAO,MAAM,uBAAuB;IAClC;;OAEG;;;IAGH;;OAEG;;IAEH;;OAEG;;;;;;;;;GAKgF,CAAC;AAEtF,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEzF,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAAG,uBAAuB,CAAC;AAEvF,eAAO,MAAM,aAAa;;;;;EAKxB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;IAKrB;;OAEG;;;;;;;;;;;;;;GAIwE,CAAC;AAE9E,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,CAAC;AAE/D;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACrC,gBAAgB,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACxC,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;IACvC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,QAAQ,oBAAoB,EAAE,KAAG,cAAc,EAkDpF,CAAC"}
1
+ {"version":3,"file":"trace.d.ts","sourceRoot":"","sources":["../../../src/trace.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,KAAK,GAAG,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAItC,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,oBAAY,iBAAiB;IAC3B,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAGD,oBAAY,wBAAwB;IAClC,KAAK,UAAU;IACf,GAAG,QAAQ;CACZ;AAED,eAAO,MAAM,mBAAmB;;;;;EAK9B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEjF,eAAO,MAAM,yBAAyB;IACpC;;OAEG;;;IAGH;;OAEG;;IAEH;;OAEG;;IAEH;;OAEG;;IAGH;;OAEG;;IAEH;;OAEG;;;;;IAEH;;OAEG;;GAEkF,CAAC;AAExF,MAAM,MAAM,yBAAyB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE7F,eAAO,MAAM,uBAAuB;IAClC;;OAEG;;;IAGH;;OAEG;;IAEH;;OAEG;;;;;;;;;GAKgF,CAAC;AAEtF,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAEzF,MAAM,MAAM,oBAAoB,GAAG,yBAAyB,GAAG,uBAAuB,CAAC;AAEvF,eAAO,MAAM,aAAa;;;;;EAKxB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;IAKrB,yCAAyC;;;;;;;;;;;;;;GAIkC,CAAC;AAE9E,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,UAAU,CAAC,CAAC;AAE/D;;;GAGG;AACH,MAAM,MAAM,cAAc,GAAG;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,iBAAiB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,oBAAoB,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtC,gBAAgB,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACzC,OAAO,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IACnC,SAAS,CAAC,EAAE,mBAAmB,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,qBAAqB,GAAI,QAAQ,oBAAoB,EAAE,KAAG,cAAc,EAkDpF,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from './invocation-tracer';
2
+ export * from './trigger-dispatcher';
3
+ export * from './trigger-state-store';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/triggers/index.ts"],"names":[],"mappings":"AAIA,cAAc,qBAAqB,CAAC;AACpC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { type EventType, type FunctionTrigger } from '@dxos/functions';
2
+ export declare const createInvocationPayload: (trigger: FunctionTrigger, event: EventType) => any;
3
+ //# sourceMappingURL=input-builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-builder.d.ts","sourceRoot":"","sources":["../../../../src/triggers/input-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAEvE,eAAO,MAAM,uBAAuB,GAAI,SAAS,eAAe,EAAE,OAAO,SAAS,KAAG,GA4BpF,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { Context, Effect, Layer } from 'effect';
2
+ import { type Queue } from '@dxos/echo-db';
3
+ import { DXN, ObjectId } from '@dxos/keys';
4
+ import { QueueService } from '../services';
5
+ import type { TriggerKind } from '../types';
6
+ export type FunctionInvocationPayload = {
7
+ data?: any;
8
+ inputNodeId?: string;
9
+ trigger?: {
10
+ id: string;
11
+ kind: TriggerKind;
12
+ };
13
+ };
14
+ export type TraceData = {
15
+ invocationId: ObjectId;
16
+ invocationTraceQueue: Queue;
17
+ };
18
+ declare const InvocationTracer_base: Context.TagClass<InvocationTracer, "@dxos/functions/InvocationTracer", {
19
+ traceInvocationStart({ payload, target, }: {
20
+ payload: FunctionInvocationPayload;
21
+ target?: DXN;
22
+ }): Effect.Effect<TraceData, never, QueueService>;
23
+ traceInvocationEnd({ trace, exception }: {
24
+ trace: TraceData;
25
+ exception?: any;
26
+ }): Effect.Effect<void>;
27
+ }>;
28
+ export declare class InvocationTracer extends InvocationTracer_base {
29
+ static layerLive: (opts: {
30
+ invocationTraceQueue: Queue;
31
+ }) => Layer.Layer<InvocationTracer, never, never>;
32
+ static layerTest: Layer.Layer<InvocationTracer, never, QueueService>;
33
+ }
34
+ export {};
35
+ //# sourceMappingURL=invocation-tracer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"invocation-tracer.d.ts","sourceRoot":"","sources":["../../../../src/triggers/invocation-tracer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAGhD,OAAO,EAAE,KAAK,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO3C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,MAAM,MAAM,yBAAyB,GAAG;IACtC,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,WAAW,CAAC;KACnB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG;IACtB,YAAY,EAAE,QAAQ,CAAC;IACvB,oBAAoB,EAAE,KAAK,CAAC;CAC7B,CAAC;;+CAQK;QACD,OAAO,EAAE,yBAAyB,CAAC;QACnC,MAAM,CAAC,EAAE,GAAG,CAAC;KACd,GAAG,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,EAAE,YAAY,CAAC;6CAER;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,SAAS,CAAC,EAAE,GAAG,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;AAXxG,qBAAa,gBAAiB,SAAQ,qBAanC;IACD,MAAM,CAAC,SAAS,GAAI,MAAM;QAAE,oBAAoB,EAAE,KAAK,CAAA;KAAE,iDA2CrD;IAEJ,MAAM,CAAC,SAAS,qDAKd;CACH"}
@@ -0,0 +1,74 @@
1
+ import { Context, Duration, Effect, Exit, Layer } from 'effect';
2
+ import { DatabaseService, FunctionInvocationService, QueueService } from '../services';
3
+ import { type EventType, FunctionTrigger, type TriggerKind } from '../types';
4
+ import { InvocationTracer } from './invocation-tracer';
5
+ import { TriggerStateStore } from './trigger-state-store';
6
+ export type TimeControl = 'natural' | 'manual';
7
+ export interface TriggerDispatcherOptions {
8
+ /**
9
+ * Time control mode.
10
+ * - 'natural': Use real time.
11
+ * - 'manual': Use internal clock for testing.
12
+ */
13
+ timeControl: TimeControl;
14
+ /**
15
+ * Starting time for manual time control mode.
16
+ * @default current time
17
+ */
18
+ startingTime?: Date;
19
+ /**
20
+ * Poll interval for cron triggers in 'natural' time control mode.
21
+ * @default 1 second
22
+ */
23
+ livePollInterval?: Duration.Duration;
24
+ }
25
+ export interface InvokeTriggerOptions {
26
+ trigger: FunctionTrigger;
27
+ event: EventType;
28
+ }
29
+ export interface TriggerExecutionResult {
30
+ triggerId: string;
31
+ result: Exit.Exit<unknown>;
32
+ }
33
+ type TriggerDispatcherServices = FunctionInvocationService | TriggerStateStore | InvocationTracer | QueueService | DatabaseService;
34
+ declare const TriggerDispatcher_base: Context.TagClass<TriggerDispatcher, "@dxos/functions/TriggerDispatcher", {
35
+ readonly timeControl: TimeControl;
36
+ readonly running: boolean;
37
+ /**
38
+ * Start the trigger dispatcher.
39
+ * Will automatically invoke triggers.
40
+ */
41
+ start(): Effect.Effect<void, never, TriggerDispatcherServices>;
42
+ /**
43
+ * Stop the trigger dispatcher.
44
+ */
45
+ stop(): Effect.Effect<void>;
46
+ /**
47
+ * Refresh triggers.
48
+ */
49
+ refreshTriggers(): Effect.Effect<void, never, DatabaseService>;
50
+ /**
51
+ * Manually invoke a specific trigger.
52
+ */
53
+ invokeTrigger(options: InvokeTriggerOptions): Effect.Effect<TriggerExecutionResult, never, TriggerDispatcherServices>;
54
+ /**
55
+ * Invoke all scheduled triggers who are due.
56
+ */
57
+ invokeScheduledTriggers(opts?: {
58
+ kinds?: TriggerKind[];
59
+ }): Effect.Effect<TriggerExecutionResult[], never, TriggerDispatcherServices>;
60
+ /**
61
+ * Advance the internal clock (manual time control only).
62
+ * Note: Does not invoke triggers.
63
+ */
64
+ advanceTime(duration: Duration.Duration): Effect.Effect<void>;
65
+ /**
66
+ * Get current time based on time control mode.
67
+ */
68
+ getCurrentTime(): Date;
69
+ }>;
70
+ export declare class TriggerDispatcher extends TriggerDispatcher_base {
71
+ static layer: (options: Omit<TriggerDispatcherOptions, "database">) => Layer.Layer<TriggerDispatcher, never, never>;
72
+ }
73
+ export { FunctionTrigger, type TimerTrigger } from '../types';
74
+ //# sourceMappingURL=trigger-dispatcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger-dispatcher.d.ts","sourceRoot":"","sources":["../../../../src/triggers/trigger-dispatcher.ts"],"names":[],"mappings":"AAIA,OAAO,EAAS,OAAO,EAAQ,QAAQ,EAAE,MAAM,EAAU,IAAI,EAAS,KAAK,EAA4B,MAAM,QAAQ,CAAC;AAUtH,OAAO,EAEL,eAAe,EACf,yBAAyB,EACzB,YAAY,EAEb,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,SAAS,EACd,eAAe,EAKf,KAAK,WAAW,EACjB,MAAM,UAAU,CAAC;AAGlB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAqB,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE7E,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE/C,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,WAAW,EAAE,WAAW,CAAC;IAEzB;;;OAGG;IACH,YAAY,CAAC,EAAE,IAAI,CAAC;IAEpB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,QAAQ,CAAC,QAAQ,CAAC;CACtC;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE,eAAe,CAAC;IACzB,KAAK,EAAE,SAAS,CAAC;CAClB;AACD,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;CAC5B;AAYD,KAAK,yBAAyB,GAC1B,yBAAyB,GAEzB,iBAAiB,GACjB,gBAAgB,GAChB,YAAY,GACZ,eAAe,CAAC;;0BAKM,WAAW;sBAElB,OAAO;IAEtB;;;OAGG;aACM,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,yBAAyB,CAAC;IAE9D;;OAEG;YACK,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAE3B;;OAEG;uBACgB,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC;IAE9D;;OAEG;2BAEQ,oBAAoB,GAC5B,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,KAAK,EAAE,yBAAyB,CAAC;IAE1E;;OAEG;mCAC4B;QAC7B,KAAK,CAAC,EAAE,WAAW,EAAE,CAAC;KACvB,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,EAAE,KAAK,EAAE,yBAAyB,CAAC;IAE7E;;;OAGG;0BACmB,QAAQ,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;IAE7D;;OAEG;sBACe,IAAI;;AA9C1B,qBAAa,iBAAkB,SAAQ,sBAgDpC;IACD,MAAM,CAAC,KAAK,GAAI,SAAS,IAAI,CAAC,wBAAwB,EAAE,UAAU,CAAC,kDAM/D;CACL;AAuXD,OAAO,EAAE,eAAe,EAAE,KAAK,YAAY,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=trigger-dispatcher.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger-dispatcher.test.d.ts","sourceRoot":"","sources":["../../../../src/triggers/trigger-dispatcher.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import { KeyValueStore } from '@effect/platform';
2
+ import { Context } from 'effect';
3
+ import { Schema } from 'effect';
4
+ import { Effect, Layer } from 'effect';
5
+ import { ObjectId } from '@dxos/keys';
6
+ import { TriggerStateNotFoundError } from '../errors';
7
+ export declare const TriggerState: Schema.Struct<{
8
+ version: Schema.Literal<["1"]>;
9
+ triggerId: typeof Schema.String;
10
+ state: Schema.optional<Schema.TaggedStruct<"subscription", {
11
+ processedVersions: Schema.Record$<import("@dxos/keys").ObjectIdClass, typeof Schema.String>;
12
+ }>>;
13
+ }>;
14
+ export interface TriggerState extends Schema.Schema.Type<typeof TriggerState> {
15
+ }
16
+ declare const TriggerStateStore_base: Context.TagClass<TriggerStateStore, "@dxos/functions/TriggerStateStore", {
17
+ getState(triggerId: ObjectId): Effect.Effect<TriggerState, TriggerStateNotFoundError>;
18
+ saveState(state: TriggerState): Effect.Effect<void>;
19
+ }>;
20
+ export declare class TriggerStateStore extends TriggerStateStore_base {
21
+ static getState: (triggerId: string) => Effect.Effect<TriggerState, TriggerStateNotFoundError, TriggerStateStore>;
22
+ static saveState: (state: TriggerState) => Effect.Effect<void, never, TriggerStateStore>;
23
+ static layerKv: Layer.Layer<TriggerStateStore, never, KeyValueStore.KeyValueStore>;
24
+ static layerMemory: Layer.Layer<TriggerStateStore, never, never>;
25
+ }
26
+ export {};
27
+ //# sourceMappingURL=trigger-state-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trigger-state-store.d.ts","sourceRoot":"","sources":["../../../../src/triggers/trigger-state-store.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAC;AAGvC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,OAAO,EAAE,yBAAyB,EAAE,MAAM,WAAW,CAAC;AAEtD,eAAO,MAAM,YAAY;;;;;;EAUvB,CAAC;AACH,MAAM,WAAW,YAAa,SAAQ,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,YAAY,CAAC;CAAG;;wBAKxD,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,yBAAyB,CAAC;qBACpE,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;;AAJvD,qBAAa,iBAAkB,SAAQ,sBAMpC;IACD,MAAM,CAAC,QAAQ,mGAAsE;IACrF,MAAM,CAAC,SAAS,yEAAuE;IAEvF,MAAM,CAAC,OAAO,qEAmBZ;IAEF,MAAM,CAAC,WAAW,+CAA4E;CAC/F"}
@@ -1,31 +1,27 @@
1
1
  import { Schema } from 'effect';
2
+ import { QueryAST, Type } from '@dxos/echo';
2
3
  import { Expando, Ref } from '@dxos/echo-schema';
3
4
  /**
4
5
  * Type discriminator for TriggerType.
5
6
  * Every spec has a type field of type TriggerKind that we can use to understand which type we're working with.
6
7
  * https://www.typescriptlang.org/docs/handbook/2/narrowing.html#discriminated-unions
7
8
  */
8
- export declare enum TriggerKind {
9
- Timer = "timer",
10
- Webhook = "webhook",
11
- Subscription = "subscription",
12
- Email = "email",
13
- Queue = "queue"
14
- }
9
+ export declare const TriggerKinds: readonly ["timer", "webhook", "subscription", "email", "queue"];
10
+ export type TriggerKind = (typeof TriggerKinds)[number];
15
11
  /**
16
12
  * Cron timer.
17
13
  */
18
14
  declare const TimerTriggerSchema: Schema.mutable<Schema.Struct<{
19
- kind: Schema.Literal<[TriggerKind.Timer]>;
15
+ kind: Schema.Literal<["timer"]>;
20
16
  cron: Schema.SchemaClass<string, string, never>;
21
17
  }>>;
22
18
  export type TimerTrigger = Schema.Schema.Type<typeof TimerTriggerSchema>;
23
19
  declare const EmailTriggerSchema: Schema.mutable<Schema.Struct<{
24
- kind: Schema.Literal<[TriggerKind.Email]>;
20
+ kind: Schema.Literal<["email"]>;
25
21
  }>>;
26
22
  export type EmailTrigger = Schema.Schema.Type<typeof EmailTriggerSchema>;
27
23
  declare const QueueTriggerSchema: Schema.mutable<Schema.Struct<{
28
- kind: Schema.Literal<[TriggerKind.Queue]>;
24
+ kind: Schema.Literal<["queue"]>;
29
25
  queue: Schema.refine<string, typeof Schema.NonEmptyString>;
30
26
  }>>;
31
27
  export type QueueTrigger = Schema.Schema.Type<typeof QueueTriggerSchema>;
@@ -33,7 +29,7 @@ export type QueueTrigger = Schema.Schema.Type<typeof QueueTriggerSchema>;
33
29
  * Webhook.
34
30
  */
35
31
  declare const WebhookTriggerSchema: Schema.mutable<Schema.Struct<{
36
- kind: Schema.Literal<[TriggerKind.Webhook]>;
32
+ kind: Schema.Literal<["webhook"]>;
37
33
  method: Schema.optional<Schema.SchemaClass<string, string, never>>;
38
34
  port: Schema.optional<Schema.SchemaClass<number, number, never>>;
39
35
  }>>;
@@ -42,11 +38,8 @@ export type WebhookTrigger = Schema.Schema.Type<typeof WebhookTriggerSchema>;
42
38
  * Subscription.
43
39
  */
44
40
  declare const SubscriptionTriggerSchema: Schema.mutable<Schema.Struct<{
45
- kind: Schema.Literal<[TriggerKind.Subscription]>;
46
- filter: Schema.Struct<{
47
- type: Schema.optional<Schema.SchemaClass<string, string, never>>;
48
- props: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
49
- }>;
41
+ kind: Schema.Literal<["subscription"]>;
42
+ query: Schema.Schema<QueryAST.QuerySelectClause | QueryAST.QueryFilterClause | QueryAST.QueryReferenceTraversalClause | QueryAST.QueryIncomingReferencesClause | QueryAST.QueryRelationClause | QueryAST.QueryRelationTraversalClause | QueryAST.QueryUnionClause | QueryAST.QuerySetDifferenceClause | QueryAST.QueryOrderClause | QueryAST.QueryOptionsClause, QueryAST.QuerySelectClause | QueryAST.QueryFilterClause | QueryAST.QueryReferenceTraversalClause | QueryAST.QueryIncomingReferencesClause | QueryAST.QueryRelationClause | QueryAST.QueryRelationTraversalClause | QueryAST.QueryUnionClause | QueryAST.QuerySetDifferenceClause | QueryAST.QueryOrderClause | QueryAST.QueryOptionsClause, never>;
50
43
  options: Schema.optional<Schema.Struct<{
51
44
  deep: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
52
45
  delay: Schema.optional<Schema.SchemaClass<number, number, never>>;
@@ -57,26 +50,23 @@ export type SubscriptionTrigger = Schema.Schema.Type<typeof SubscriptionTriggerS
57
50
  * Trigger schema (discriminated union).
58
51
  */
59
52
  export declare const TriggerSchema: Schema.Union<[Schema.mutable<Schema.Struct<{
60
- kind: Schema.Literal<[TriggerKind.Timer]>;
53
+ kind: Schema.Literal<["timer"]>;
61
54
  cron: Schema.SchemaClass<string, string, never>;
62
55
  }>>, Schema.mutable<Schema.Struct<{
63
- kind: Schema.Literal<[TriggerKind.Webhook]>;
56
+ kind: Schema.Literal<["webhook"]>;
64
57
  method: Schema.optional<Schema.SchemaClass<string, string, never>>;
65
58
  port: Schema.optional<Schema.SchemaClass<number, number, never>>;
66
59
  }>>, Schema.mutable<Schema.Struct<{
67
- kind: Schema.Literal<[TriggerKind.Subscription]>;
68
- filter: Schema.Struct<{
69
- type: Schema.optional<Schema.SchemaClass<string, string, never>>;
70
- props: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
71
- }>;
60
+ kind: Schema.Literal<["subscription"]>;
61
+ query: Schema.Schema<QueryAST.QuerySelectClause | QueryAST.QueryFilterClause | QueryAST.QueryReferenceTraversalClause | QueryAST.QueryIncomingReferencesClause | QueryAST.QueryRelationClause | QueryAST.QueryRelationTraversalClause | QueryAST.QueryUnionClause | QueryAST.QuerySetDifferenceClause | QueryAST.QueryOrderClause | QueryAST.QueryOptionsClause, QueryAST.QuerySelectClause | QueryAST.QueryFilterClause | QueryAST.QueryReferenceTraversalClause | QueryAST.QueryIncomingReferencesClause | QueryAST.QueryRelationClause | QueryAST.QueryRelationTraversalClause | QueryAST.QueryUnionClause | QueryAST.QuerySetDifferenceClause | QueryAST.QueryOrderClause | QueryAST.QueryOptionsClause, never>;
72
62
  options: Schema.optional<Schema.Struct<{
73
63
  deep: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
74
64
  delay: Schema.optional<Schema.SchemaClass<number, number, never>>;
75
65
  }>>;
76
66
  }>>, Schema.mutable<Schema.Struct<{
77
- kind: Schema.Literal<[TriggerKind.Email]>;
67
+ kind: Schema.Literal<["email"]>;
78
68
  }>>, Schema.mutable<Schema.Struct<{
79
- kind: Schema.Literal<[TriggerKind.Queue]>;
69
+ kind: Schema.Literal<["queue"]>;
80
70
  queue: Schema.refine<string, typeof Schema.NonEmptyString>;
81
71
  }>>]>;
82
72
  export type TriggerType = Schema.Schema.Type<typeof TriggerSchema>;
@@ -103,8 +93,18 @@ export declare const QueueTriggerOutput: Schema.mutable<Schema.Struct<{
103
93
  }>>;
104
94
  export type QueueTriggerOutput = Schema.Schema.Type<typeof QueueTriggerOutput>;
105
95
  export declare const SubscriptionTriggerOutput: Schema.mutable<Schema.Struct<{
96
+ /**
97
+ * Type of the mutation.
98
+ */
106
99
  type: typeof Schema.String;
107
- changedObjectId: typeof Schema.String;
100
+ /**
101
+ * Reference to the object that was changed or created.
102
+ */
103
+ subject: Type.ref<Type.obj<Schema.Struct<{}>>>;
104
+ /**
105
+ * @deprecated
106
+ */
107
+ changedObjectId: Schema.optional<typeof Schema.String>;
108
108
  }>>;
109
109
  export type SubscriptionTriggerOutput = Schema.Schema.Type<typeof SubscriptionTriggerOutput>;
110
110
  export declare const TimerTriggerOutput: Schema.mutable<Schema.Struct<{
@@ -116,103 +116,7 @@ export type TimerTriggerOutput = Schema.Schema.Type<typeof TimerTriggerOutput>;
116
116
  * Function is invoked with the `payload` passed as input data.
117
117
  * The event that triggers the function is available in the function context.
118
118
  */
119
- export declare const FunctionTriggerSchema: Schema.Struct<{
120
- /**
121
- * Function or workflow to invoke.
122
- */
123
- function: Schema.optional<Schema.SchemaClass<Ref<Expando>, import("@dxos/echo-protocol").EncodedReference, never>>;
124
- /**
125
- * Only used for workflowSchema.
126
- * Specifies the input node in the circuit.
127
- * @deprecated Remove and enforce a single input node in all compute graphSchema.
128
- */
129
- inputNodeId: Schema.optional<Schema.SchemaClass<string, string, never>>;
130
- enabled: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
131
- spec: Schema.optional<Schema.Union<[Schema.mutable<Schema.Struct<{
132
- kind: Schema.Literal<[TriggerKind.Timer]>;
133
- cron: Schema.SchemaClass<string, string, never>;
134
- }>>, Schema.mutable<Schema.Struct<{
135
- kind: Schema.Literal<[TriggerKind.Webhook]>;
136
- method: Schema.optional<Schema.SchemaClass<string, string, never>>;
137
- port: Schema.optional<Schema.SchemaClass<number, number, never>>;
138
- }>>, Schema.mutable<Schema.Struct<{
139
- kind: Schema.Literal<[TriggerKind.Subscription]>;
140
- filter: Schema.Struct<{
141
- type: Schema.optional<Schema.SchemaClass<string, string, never>>;
142
- props: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
143
- }>;
144
- options: Schema.optional<Schema.Struct<{
145
- deep: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
146
- delay: Schema.optional<Schema.SchemaClass<number, number, never>>;
147
- }>>;
148
- }>>, Schema.mutable<Schema.Struct<{
149
- kind: Schema.Literal<[TriggerKind.Email]>;
150
- }>>, Schema.mutable<Schema.Struct<{
151
- kind: Schema.Literal<[TriggerKind.Queue]>;
152
- queue: Schema.refine<string, typeof Schema.NonEmptyString>;
153
- }>>]>>;
154
- /**
155
- * Passed as the input data to the function.
156
- * Must match the function's input schema.
157
- *
158
- * @example
159
- * {
160
- * item: '{{$.trigger.event}}',
161
- * instructions: 'Summarize and perform entity-extraction'
162
- * mailbox: { '/': 'dxn:echo:AAA:ZZZ' }
163
- * }
164
- */
165
- input: Schema.optional<Schema.mutable<Schema.Record$<typeof Schema.String, typeof Schema.Any>>>;
166
- }>;
167
- export type FunctionTriggerType = Schema.Schema.Type<typeof FunctionTriggerSchema>;
168
- declare const FunctionTrigger_base: import("@dxos/echo-schema").TypedObjectPrototype<import("@dxos/echo-schema").TypedObjectFields<Readonly<{
169
- /**
170
- * Function or workflow to invoke.
171
- */
172
- function: Schema.optional<Schema.SchemaClass<Ref<Expando>, import("@dxos/echo-protocol").EncodedReference, never>>;
173
- /**
174
- * Only used for workflowSchema.
175
- * Specifies the input node in the circuit.
176
- * @deprecated Remove and enforce a single input node in all compute graphSchema.
177
- */
178
- inputNodeId: Schema.optional<Schema.SchemaClass<string, string, never>>;
179
- enabled: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
180
- spec: Schema.optional<Schema.Union<[Schema.mutable<Schema.Struct<{
181
- kind: Schema.Literal<[TriggerKind.Timer]>;
182
- cron: Schema.SchemaClass<string, string, never>;
183
- }>>, Schema.mutable<Schema.Struct<{
184
- kind: Schema.Literal<[TriggerKind.Webhook]>;
185
- method: Schema.optional<Schema.SchemaClass<string, string, never>>;
186
- port: Schema.optional<Schema.SchemaClass<number, number, never>>;
187
- }>>, Schema.mutable<Schema.Struct<{
188
- kind: Schema.Literal<[TriggerKind.Subscription]>;
189
- filter: Schema.Struct<{
190
- type: Schema.optional<Schema.SchemaClass<string, string, never>>;
191
- props: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
192
- }>;
193
- options: Schema.optional<Schema.Struct<{
194
- deep: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
195
- delay: Schema.optional<Schema.SchemaClass<number, number, never>>;
196
- }>>;
197
- }>>, Schema.mutable<Schema.Struct<{
198
- kind: Schema.Literal<[TriggerKind.Email]>;
199
- }>>, Schema.mutable<Schema.Struct<{
200
- kind: Schema.Literal<[TriggerKind.Queue]>;
201
- queue: Schema.refine<string, typeof Schema.NonEmptyString>;
202
- }>>]>>;
203
- /**
204
- * Passed as the input data to the function.
205
- * Must match the function's input schema.
206
- *
207
- * @example
208
- * {
209
- * item: '{{$.trigger.event}}',
210
- * instructions: 'Summarize and perform entity-extraction'
211
- * mailbox: { '/': 'dxn:echo:AAA:ZZZ' }
212
- * }
213
- */
214
- input: Schema.optional<Schema.mutable<Schema.Record$<typeof Schema.String, typeof Schema.Any>>>;
215
- }>, import("@dxos/echo-schema").TypedObjectOptions>, Schema.Struct.Encoded<Readonly<{
119
+ declare const FunctionTrigger_: Type.obj<Schema.Struct<{
216
120
  /**
217
121
  * Function or workflow to invoke.
218
122
  */
@@ -225,26 +129,23 @@ declare const FunctionTrigger_base: import("@dxos/echo-schema").TypedObjectProto
225
129
  inputNodeId: Schema.optional<Schema.SchemaClass<string, string, never>>;
226
130
  enabled: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
227
131
  spec: Schema.optional<Schema.Union<[Schema.mutable<Schema.Struct<{
228
- kind: Schema.Literal<[TriggerKind.Timer]>;
132
+ kind: Schema.Literal<["timer"]>;
229
133
  cron: Schema.SchemaClass<string, string, never>;
230
134
  }>>, Schema.mutable<Schema.Struct<{
231
- kind: Schema.Literal<[TriggerKind.Webhook]>;
135
+ kind: Schema.Literal<["webhook"]>;
232
136
  method: Schema.optional<Schema.SchemaClass<string, string, never>>;
233
137
  port: Schema.optional<Schema.SchemaClass<number, number, never>>;
234
138
  }>>, Schema.mutable<Schema.Struct<{
235
- kind: Schema.Literal<[TriggerKind.Subscription]>;
236
- filter: Schema.Struct<{
237
- type: Schema.optional<Schema.SchemaClass<string, string, never>>;
238
- props: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
239
- }>;
139
+ kind: Schema.Literal<["subscription"]>;
140
+ query: Schema.Schema<QueryAST.QuerySelectClause | QueryAST.QueryFilterClause | QueryAST.QueryReferenceTraversalClause | QueryAST.QueryIncomingReferencesClause | QueryAST.QueryRelationClause | QueryAST.QueryRelationTraversalClause | QueryAST.QueryUnionClause | QueryAST.QuerySetDifferenceClause | QueryAST.QueryOrderClause | QueryAST.QueryOptionsClause, QueryAST.QuerySelectClause | QueryAST.QueryFilterClause | QueryAST.QueryReferenceTraversalClause | QueryAST.QueryIncomingReferencesClause | QueryAST.QueryRelationClause | QueryAST.QueryRelationTraversalClause | QueryAST.QueryUnionClause | QueryAST.QuerySetDifferenceClause | QueryAST.QueryOrderClause | QueryAST.QueryOptionsClause, never>;
240
141
  options: Schema.optional<Schema.Struct<{
241
142
  deep: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
242
143
  delay: Schema.optional<Schema.SchemaClass<number, number, never>>;
243
144
  }>>;
244
145
  }>>, Schema.mutable<Schema.Struct<{
245
- kind: Schema.Literal<[TriggerKind.Email]>;
146
+ kind: Schema.Literal<["email"]>;
246
147
  }>>, Schema.mutable<Schema.Struct<{
247
- kind: Schema.Literal<[TriggerKind.Queue]>;
148
+ kind: Schema.Literal<["queue"]>;
248
149
  queue: Schema.refine<string, typeof Schema.NonEmptyString>;
249
150
  }>>]>>;
250
151
  /**
@@ -259,153 +160,62 @@ declare const FunctionTrigger_base: import("@dxos/echo-schema").TypedObjectProto
259
160
  * }
260
161
  */
261
162
  input: Schema.optional<Schema.mutable<Schema.Record$<typeof Schema.String, typeof Schema.Any>>>;
262
- }>>>;
263
- /**
264
- * Function trigger.
265
- */
266
- export declare class FunctionTrigger extends FunctionTrigger_base {
163
+ }>>;
164
+ export interface FunctionTrigger extends Schema.Schema.Type<typeof FunctionTrigger_> {
165
+ }
166
+ export interface FunctionTriggerEncoded extends Schema.Schema.Encoded<typeof FunctionTrigger_> {
267
167
  }
168
+ export declare const FunctionTrigger: Schema.Schema<FunctionTrigger, FunctionTriggerEncoded>;
268
169
  /**
269
170
  * Function manifest file.
270
171
  */
271
172
  export declare const FunctionManifestSchema: Schema.Struct<{
272
- functions: Schema.optional<Schema.mutable<Schema.Array$<Schema.Schema<import("@dxos/echo-schema").ExcludeId<import("@dxos/echo/Type").OfKind<import("@dxos/echo-schema").EntityKind.Object> & {
273
- description?: string | undefined;
274
- version: string;
173
+ functions: Schema.optional<Schema.mutable<Schema.Array$<Schema.Schema<import("@dxos/echo-schema").ExcludeId<Type.OfKind<import("@dxos/echo-schema").EntityKind.Object> & {
275
174
  name: string;
276
- inputSchema?: import("@dxos/echo-schema").JsonSchemaType | undefined;
277
- outputSchema?: import("@dxos/echo-schema").JsonSchemaType | undefined;
278
- source?: Ref<import("@dxos/echo/Type").OfKind<import("@dxos/echo-schema").EntityKind.Object> & {
279
- description?: string | undefined;
175
+ description?: string | undefined;
176
+ source?: Ref<Type.OfKind<import("@dxos/echo-schema").EntityKind.Object> & {
280
177
  name?: string | undefined;
178
+ description?: string | undefined;
281
179
  changed?: boolean | undefined;
282
- source: Ref<import("@dxos/echo/Type").OfKind<import("@dxos/echo-schema").EntityKind.Object> & {
180
+ source: Ref<Type.OfKind<import("@dxos/echo-schema").EntityKind.Object> & {
283
181
  content: string;
284
182
  }>;
285
183
  }> | undefined;
184
+ version: string;
185
+ key?: string | undefined;
186
+ inputSchema?: Type.JsonSchema | undefined;
187
+ outputSchema?: Type.JsonSchema | undefined;
286
188
  binding?: string | undefined;
287
189
  }> & import("@dxos/echo-schema").WithMeta, {
288
190
  id: string;
289
- version: string;
290
191
  name: string;
192
+ version: string;
291
193
  description?: string | undefined;
292
- inputSchema?: import("@dxos/echo-schema").JsonSchemaType | undefined;
293
- outputSchema?: import("@dxos/echo-schema").JsonSchemaType | undefined;
294
194
  source?: import("@dxos/echo-protocol").EncodedReference | undefined;
195
+ key?: string | undefined;
196
+ inputSchema?: Type.JsonSchema | undefined;
197
+ outputSchema?: Type.JsonSchema | undefined;
295
198
  binding?: string | undefined;
296
199
  }, never>>>>;
297
- triggers: Schema.optional<Schema.mutable<Schema.Array$<Schema.Schema<import("@dxos/echo-schema").ExcludeId<import("@dxos/echo-schema").TypedObjectFields<Readonly<{
298
- /**
299
- * Function or workflow to invoke.
300
- */
301
- function: Schema.optional<Schema.SchemaClass<Ref<Expando>, import("@dxos/echo-protocol").EncodedReference, never>>;
302
- /**
303
- * Only used for workflowSchema.
304
- * Specifies the input node in the circuit.
305
- * @deprecated Remove and enforce a single input node in all compute graphSchema.
306
- */
307
- inputNodeId: Schema.optional<Schema.SchemaClass<string, string, never>>;
308
- enabled: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
309
- spec: Schema.optional<Schema.Union<[Schema.mutable<Schema.Struct<{
310
- kind: Schema.Literal<[TriggerKind.Timer]>;
311
- cron: Schema.SchemaClass<string, string, never>;
312
- }>>, Schema.mutable<Schema.Struct<{
313
- kind: Schema.Literal<[TriggerKind.Webhook]>;
314
- method: Schema.optional<Schema.SchemaClass<string, string, never>>;
315
- port: Schema.optional<Schema.SchemaClass<number, number, never>>;
316
- }>>, Schema.mutable<Schema.Struct<{
317
- kind: Schema.Literal<[TriggerKind.Subscription]>;
318
- filter: Schema.Struct<{
319
- type: Schema.optional<Schema.SchemaClass<string, string, never>>;
320
- props: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
321
- }>;
322
- options: Schema.optional<Schema.Struct<{
323
- deep: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
324
- delay: Schema.optional<Schema.SchemaClass<number, number, never>>;
325
- }>>;
326
- }>>, Schema.mutable<Schema.Struct<{
327
- kind: Schema.Literal<[TriggerKind.Email]>;
328
- }>>, Schema.mutable<Schema.Struct<{
329
- kind: Schema.Literal<[TriggerKind.Queue]>;
330
- queue: Schema.refine<string, typeof Schema.NonEmptyString>;
331
- }>>]>>;
332
- /**
333
- * Passed as the input data to the function.
334
- * Must match the function's input schema.
335
- *
336
- * @example
337
- * {
338
- * item: '{{$.trigger.event}}',
339
- * instructions: 'Summarize and perform entity-extraction'
340
- * mailbox: { '/': 'dxn:echo:AAA:ZZZ' }
341
- * }
342
- */
343
- input: Schema.optional<Schema.mutable<Schema.Record$<typeof Schema.String, typeof Schema.Any>>>;
344
- }>, import("@dxos/echo-schema").TypedObjectOptions>> & import("@dxos/echo-schema").WithMeta, Schema.Struct.Encoded<Readonly<{
345
- /**
346
- * Function or workflow to invoke.
347
- */
348
- function: Schema.optional<Schema.SchemaClass<Ref<Expando>, import("@dxos/echo-protocol").EncodedReference, never>>;
349
- /**
350
- * Only used for workflowSchema.
351
- * Specifies the input node in the circuit.
352
- * @deprecated Remove and enforce a single input node in all compute graphSchema.
353
- */
354
- inputNodeId: Schema.optional<Schema.SchemaClass<string, string, never>>;
355
- enabled: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
356
- spec: Schema.optional<Schema.Union<[Schema.mutable<Schema.Struct<{
357
- kind: Schema.Literal<[TriggerKind.Timer]>;
358
- cron: Schema.SchemaClass<string, string, never>;
359
- }>>, Schema.mutable<Schema.Struct<{
360
- kind: Schema.Literal<[TriggerKind.Webhook]>;
361
- method: Schema.optional<Schema.SchemaClass<string, string, never>>;
362
- port: Schema.optional<Schema.SchemaClass<number, number, never>>;
363
- }>>, Schema.mutable<Schema.Struct<{
364
- kind: Schema.Literal<[TriggerKind.Subscription]>;
365
- filter: Schema.Struct<{
366
- type: Schema.optional<Schema.SchemaClass<string, string, never>>;
367
- props: Schema.optional<Schema.Record$<typeof Schema.String, typeof Schema.Any>>;
368
- }>;
369
- options: Schema.optional<Schema.Struct<{
370
- deep: Schema.optional<Schema.SchemaClass<boolean, boolean, never>>;
371
- delay: Schema.optional<Schema.SchemaClass<number, number, never>>;
372
- }>>;
373
- }>>, Schema.mutable<Schema.Struct<{
374
- kind: Schema.Literal<[TriggerKind.Email]>;
375
- }>>, Schema.mutable<Schema.Struct<{
376
- kind: Schema.Literal<[TriggerKind.Queue]>;
377
- queue: Schema.refine<string, typeof Schema.NonEmptyString>;
378
- }>>]>>;
379
- /**
380
- * Passed as the input data to the function.
381
- * Must match the function's input schema.
382
- *
383
- * @example
384
- * {
385
- * item: '{{$.trigger.event}}',
386
- * instructions: 'Summarize and perform entity-extraction'
387
- * mailbox: { '/': 'dxn:echo:AAA:ZZZ' }
388
- * }
389
- */
390
- input: Schema.optional<Schema.mutable<Schema.Record$<typeof Schema.String, typeof Schema.Any>>>;
391
- }>>, never>>>>;
200
+ triggers: Schema.optional<Schema.mutable<Schema.Array$<Schema.Schema<import("@dxos/echo-schema").ExcludeId<FunctionTrigger> & import("@dxos/echo-schema").WithMeta, FunctionTriggerEncoded, never>>>>;
392
201
  }>;
393
202
  export type FunctionManifest = Schema.Schema.Type<typeof FunctionManifestSchema>;
394
- export declare const FUNCTION_TYPES: (import("@dxos/echo/Type").obj<Schema.Struct<{
203
+ export declare const FUNCTION_TYPES: (Type.obj<Schema.Struct<{
204
+ key: Schema.optional<typeof Schema.String>;
395
205
  name: typeof Schema.NonEmptyString;
396
206
  version: typeof Schema.String;
397
207
  description: Schema.optional<typeof Schema.String>;
398
- source: Schema.optional<import("@dxos/echo-schema").Ref$<import("@dxos/echo/Type").OfKind<import("@dxos/echo-schema").EntityKind.Object> & {
399
- description?: string | undefined;
208
+ source: Schema.optional<import("@dxos/echo-schema").Ref$<Type.OfKind<import("@dxos/echo-schema").EntityKind.Object> & {
400
209
  name?: string | undefined;
210
+ description?: string | undefined;
401
211
  changed?: boolean | undefined;
402
- source: Ref<import("@dxos/echo/Type").OfKind<import("@dxos/echo-schema").EntityKind.Object> & {
212
+ source: Ref<Type.OfKind<import("@dxos/echo-schema").EntityKind.Object> & {
403
213
  content: string;
404
214
  }>;
405
215
  }>>;
406
- inputSchema: Schema.optional<Schema.Schema<import("@dxos/echo-schema").JsonSchemaType, import("@dxos/echo-schema").JsonSchemaType, never>>;
407
- outputSchema: Schema.optional<Schema.Schema<import("@dxos/echo-schema").JsonSchemaType, import("@dxos/echo-schema").JsonSchemaType, never>>;
216
+ inputSchema: Schema.optional<Schema.Schema<Type.JsonSchema, Type.JsonSchema, never>>;
217
+ outputSchema: Schema.optional<Schema.Schema<Type.JsonSchema, Type.JsonSchema, never>>;
408
218
  binding: Schema.optional<typeof Schema.String>;
409
- }>> | typeof FunctionTrigger)[];
219
+ }>> | Schema.Schema<FunctionTrigger, FunctionTriggerEncoded, never>)[];
410
220
  export {};
411
221
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/types.ts"],"names":[],"mappings":"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"}