@dxos/functions 0.8.4-main.9be5663bfe → 0.8.4-main.abd8ff62ef

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 (96) hide show
  1. package/dist/lib/neutral/index.mjs +126 -917
  2. package/dist/lib/neutral/index.mjs.map +4 -4
  3. package/dist/lib/neutral/meta.json +1 -1
  4. package/dist/types/src/index.d.ts +0 -6
  5. package/dist/types/src/index.d.ts.map +1 -1
  6. package/dist/types/src/protocol/functions-ai-http-client.d.ts.map +1 -1
  7. package/dist/types/src/protocol/protocol.d.ts +1 -1
  8. package/dist/types/src/protocol/protocol.d.ts.map +1 -1
  9. package/dist/types/src/sdk.d.ts +3 -7
  10. package/dist/types/src/sdk.d.ts.map +1 -1
  11. package/dist/types/src/services/credentials.d.ts +15 -38
  12. package/dist/types/src/services/credentials.d.ts.map +1 -1
  13. package/dist/types/src/services/function-invocation-service.d.ts +3 -5
  14. package/dist/types/src/services/function-invocation-service.d.ts.map +1 -1
  15. package/dist/types/src/services/index.d.ts +1 -4
  16. package/dist/types/src/services/index.d.ts.map +1 -1
  17. package/dist/types/src/services/queues.d.ts +1 -49
  18. package/dist/types/src/services/queues.d.ts.map +1 -1
  19. package/dist/types/src/services/tracing.d.ts +1 -107
  20. package/dist/types/src/services/tracing.d.ts.map +1 -1
  21. package/dist/types/src/types/index.d.ts +0 -3
  22. package/dist/types/src/types/index.d.ts.map +1 -1
  23. package/dist/types/src/types/url.d.ts +1 -1
  24. package/dist/types/src/types/url.d.ts.map +1 -1
  25. package/dist/types/tsconfig.tsbuildinfo +1 -1
  26. package/package.json +15 -20
  27. package/src/index.ts +0 -6
  28. package/src/protocol/protocol.test.ts +10 -10
  29. package/src/protocol/protocol.ts +37 -12
  30. package/src/sdk.ts +5 -15
  31. package/src/services/credentials.ts +75 -118
  32. package/src/services/function-invocation-service.ts +3 -9
  33. package/src/services/index.ts +1 -4
  34. package/src/services/queues.ts +1 -87
  35. package/src/services/tracing.ts +0 -192
  36. package/src/types/index.ts +0 -3
  37. package/src/types/url.ts +1 -1
  38. package/dist/lib/neutral/Trace.mjs +0 -38
  39. package/dist/lib/neutral/Trace.mjs.map +0 -7
  40. package/dist/lib/neutral/chunk-5T7GOX2V.mjs +0 -149
  41. package/dist/lib/neutral/chunk-5T7GOX2V.mjs.map +0 -7
  42. package/dist/lib/neutral/chunk-IVDUS56O.mjs +0 -49
  43. package/dist/lib/neutral/chunk-IVDUS56O.mjs.map +0 -7
  44. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +0 -10
  45. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +0 -7
  46. package/dist/lib/neutral/fib-N45KAC7C.mjs +0 -23
  47. package/dist/lib/neutral/fib-N45KAC7C.mjs.map +0 -7
  48. package/dist/lib/neutral/reply-EUEPKNJF.mjs +0 -19
  49. package/dist/lib/neutral/reply-EUEPKNJF.mjs.map +0 -7
  50. package/dist/lib/neutral/sleep-PUK3D4FF.mjs +0 -15
  51. package/dist/lib/neutral/sleep-PUK3D4FF.mjs.map +0 -7
  52. package/dist/types/src/Trace.d.ts +0 -155
  53. package/dist/types/src/Trace.d.ts.map +0 -1
  54. package/dist/types/src/errors.d.ts +0 -121
  55. package/dist/types/src/errors.d.ts.map +0 -1
  56. package/dist/types/src/example/definitions.d.ts +0 -11
  57. package/dist/types/src/example/definitions.d.ts.map +0 -1
  58. package/dist/types/src/example/fib.d.ts +0 -8
  59. package/dist/types/src/example/fib.d.ts.map +0 -1
  60. package/dist/types/src/example/forex-effect.d.ts +0 -3
  61. package/dist/types/src/example/forex-effect.d.ts.map +0 -1
  62. package/dist/types/src/example/index.d.ts +0 -4
  63. package/dist/types/src/example/index.d.ts.map +0 -1
  64. package/dist/types/src/example/reply.d.ts +0 -4
  65. package/dist/types/src/example/reply.d.ts.map +0 -1
  66. package/dist/types/src/example/sleep.d.ts +0 -6
  67. package/dist/types/src/example/sleep.d.ts.map +0 -1
  68. package/dist/types/src/process/Process.d.ts +0 -247
  69. package/dist/types/src/process/Process.d.ts.map +0 -1
  70. package/dist/types/src/process/ServiceResolver.d.ts +0 -74
  71. package/dist/types/src/process/ServiceResolver.d.ts.map +0 -1
  72. package/dist/types/src/process/StorageService.d.ts +0 -58
  73. package/dist/types/src/process/StorageService.d.ts.map +0 -1
  74. package/dist/types/src/services/event-logger.d.ts +0 -81
  75. package/dist/types/src/services/event-logger.d.ts.map +0 -1
  76. package/dist/types/src/types/Script.d.ts +0 -22
  77. package/dist/types/src/types/Script.d.ts.map +0 -1
  78. package/dist/types/src/types/Trigger.d.ts +0 -120
  79. package/dist/types/src/types/Trigger.d.ts.map +0 -1
  80. package/dist/types/src/types/TriggerEvent.d.ts +0 -75
  81. package/dist/types/src/types/TriggerEvent.d.ts.map +0 -1
  82. package/src/Trace.ts +0 -202
  83. package/src/errors.ts +0 -21
  84. package/src/example/definitions.ts +0 -49
  85. package/src/example/fib.ts +0 -23
  86. package/src/example/forex-effect.ts +0 -40
  87. package/src/example/index.ts +0 -12
  88. package/src/example/reply.ts +0 -19
  89. package/src/example/sleep.ts +0 -17
  90. package/src/process/Process.ts +0 -486
  91. package/src/process/ServiceResolver.ts +0 -174
  92. package/src/process/StorageService.ts +0 -99
  93. package/src/services/event-logger.ts +0 -127
  94. package/src/types/Script.ts +0 -38
  95. package/src/types/Trigger.ts +0 -154
  96. package/src/types/TriggerEvent.ts +0 -62
@@ -2,198 +2,6 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import * as Context from 'effect/Context';
6
- import * as Effect from 'effect/Effect';
7
- import * as Layer from 'effect/Layer';
8
-
9
- import { AgentStatus } from '@dxos/ai';
10
- import { type DXN, Obj, Ref } from '@dxos/echo';
11
- import { ObjectId } from '@dxos/keys';
12
- import { Message } from '@dxos/types';
13
-
14
- import type { Trigger } from '../types';
15
-
16
- /**
17
- * Provides a way for compute primitives (functions, workflows, tools)
18
- * to emit an execution trace as a series of structured ECHO objects.
19
- * @deprecated Use Trace.TraceService instead.
20
- */
21
- export class TracingService extends Context.Tag('@dxos/functions/TracingService')<
22
- TracingService,
23
- {
24
- /**
25
- * Gets the parent message ID.
26
- */
27
- getTraceContext: () => TracingService.TraceContext;
28
-
29
- /**
30
- * Write an event to the tracing queue.
31
- * @param event - The event to write. Must be an a typed object.
32
- */
33
- write: (event: Obj.Unknown, traceContext: TracingService.TraceContext) => void;
34
-
35
- /**
36
- * Write an ephemeral event.
37
- */
38
- ephemeral: (event: Obj.Unknown, traceContext: TracingService.TraceContext) => void;
39
-
40
- traceInvocationStart({
41
- payload,
42
- target,
43
- }: {
44
- payload: TracingService.FunctionInvocationPayload;
45
- target?: DXN;
46
- }): Effect.Effect<TracingService.InvocationTraceData>;
47
-
48
- traceInvocationEnd({
49
- trace,
50
- exception,
51
- }: {
52
- trace: TracingService.InvocationTraceData;
53
- exception?: any;
54
- }): Effect.Effect<void>;
55
- }
56
- >() {
57
- static noop: Context.Tag.Service<TracingService> = {
58
- getTraceContext: () => ({}),
59
- write: () => {},
60
- ephemeral: () => {},
61
- traceInvocationStart: () =>
62
- Effect.sync(() => ({ invocationId: ObjectId.random(), invocationTraceQueue: undefined })),
63
- traceInvocationEnd: () => Effect.sync(() => {}),
64
- };
65
-
66
- static layerNoop: Layer.Layer<TracingService> = Layer.succeed(TracingService, TracingService.noop);
67
-
68
- /**
69
- * Creates a TracingService layer that emits events to the parent tracing service.
70
- */
71
- static layerSubframe = (mapContext: (currentContext: TracingService.TraceContext) => TracingService.TraceContext) =>
72
- Layer.effect(
73
- TracingService,
74
- Effect.gen(function* () {
75
- const tracing = yield* TracingService;
76
- const context = mapContext(tracing.getTraceContext());
77
- return {
78
- write: (event, context) => tracing.write(event, context),
79
- ephemeral: (event, context) => tracing.ephemeral(event, context),
80
- getTraceContext: () => context,
81
- traceInvocationStart: () => Effect.die('Tracing invocation inside another invocation is not supported.'),
82
- traceInvocationEnd: () => Effect.die('Tracing invocation inside another invocation is not supported.'),
83
- };
84
- }),
85
- );
86
-
87
- /**
88
- * Create sublayer to trace an invocation.
89
- * @param data
90
- * @returns
91
- */
92
- static layerInvocation = (data: TracingService.InvocationTraceData) =>
93
- TracingService.layerSubframe((context) => ({
94
- ...context,
95
- currentInvocation: data,
96
- }));
97
-
98
- /**
99
- * Emit the current human-readable execution status.
100
- */
101
- static emitStatus: (
102
- data: Omit<Obj.MakeProps<typeof AgentStatus>, 'created'>,
103
- ) => Effect.Effect<void, never, TracingService> = Effect.fnUntraced(function* (data) {
104
- const tracing = yield* TracingService;
105
- tracing.write(
106
- Obj.make(AgentStatus, {
107
- parentMessage: tracing.getTraceContext().parentMessage,
108
- toolCallId: tracing.getTraceContext().toolCallId,
109
- created: new Date().toISOString(),
110
- ...data,
111
- }),
112
- tracing.getTraceContext(),
113
- );
114
- });
115
-
116
- static emitConverationMessage: (
117
- data: Obj.MakeProps<typeof Message.Message> | Message.Message,
118
- ) => Effect.Effect<void, never, TracingService> = Effect.fnUntraced(function* (data) {
119
- const tracing = yield* TracingService;
120
- tracing.write(
121
- Obj.make(Message.Message, {
122
- parentMessage: tracing.getTraceContext().parentMessage,
123
- ...data,
124
- properties: {
125
- [MESSAGE_PROPERTY_TOOL_CALL_ID]: tracing.getTraceContext().toolCallId,
126
- ...data.properties,
127
- },
128
- }),
129
- tracing.getTraceContext(),
130
- );
131
- });
132
-
133
- static emitEphemeralMessage: (data: Message.Message) => Effect.Effect<void, never, TracingService> =
134
- Effect.fnUntraced(function* (data) {
135
- const tracing = yield* TracingService;
136
- tracing.ephemeral(data, tracing.getTraceContext());
137
- });
138
- }
139
-
140
- export namespace TracingService {
141
- export interface TraceContext {
142
- currentInvocation?: InvocationTraceData;
143
-
144
- /**
145
- * If this thread sprung from a tool call, this is the ID of the message containing the tool call.
146
- */
147
- parentMessage?: ObjectId;
148
-
149
- /**
150
- * If the current thread is a byproduct of a tool call, this is the ID of the tool call.
151
- */
152
- toolCallId?: string;
153
-
154
- debugInfo?: unknown;
155
- }
156
-
157
- /**
158
- * Trace data for a function/trigger invocation.
159
- */
160
- export interface InvocationTraceData {
161
- invocationId: ObjectId;
162
- invocationTraceQueue?: DXN.String;
163
- }
164
-
165
- /**
166
- * Payload for a function/trigger invocation.
167
- */
168
- export interface FunctionInvocationPayload {
169
- data?: any;
170
- inputNodeId?: string;
171
- trigger?: {
172
- id: string;
173
- kind: Trigger.Kind;
174
- };
175
- chat?: Ref.Ref<Obj.Unknown>;
176
- process?: {
177
- pid: string;
178
- parentPid?: string;
179
- /**
180
- * Key of the executable.
181
- */
182
- key: string;
183
-
184
- /**
185
- * Process name.
186
- */
187
- name?: string;
188
-
189
- /**
190
- * Target object that the process is assigned to.
191
- */
192
- target?: string;
193
- };
194
- }
195
- }
196
-
197
5
  /**
198
6
  * Goes into {@link Message['properties']}
199
7
  */
@@ -2,7 +2,4 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- export * as Script from './Script';
6
- export * as Trigger from './Trigger';
7
- export * as TriggerEvent from './TriggerEvent';
8
5
  export * from './url';
package/src/types/url.ts CHANGED
@@ -18,7 +18,7 @@ export const getUserFunctionIdInMetadata = (meta: Obj.ReadonlyMeta) => {
18
18
 
19
19
  /**
20
20
  * NOTE: functionId is backend ID, not ECHO object id.
21
- * Must be called inside Obj.changeMeta() since it mutates the meta.
21
+ * Must be called inside Obj.update() since it mutates the meta.
22
22
  */
23
23
  export const setUserFunctionIdInMetadata = (meta: Obj.Meta, functionId: string) => {
24
24
  const key = meta.keys.find((key) => key.source === FUNCTIONS_META_KEY);
@@ -1,38 +0,0 @@
1
- import {
2
- Event,
3
- EventType,
4
- Message,
5
- MessageData,
6
- Meta,
7
- OperationEnd,
8
- OperationStart,
9
- TraceService,
10
- TraceSink,
11
- isOfType,
12
- layerConsole,
13
- layerNoop,
14
- noopWriter,
15
- testTraceService,
16
- write,
17
- writerLayerNoop
18
- } from "./chunk-5T7GOX2V.mjs";
19
- import "./chunk-J5LGTIGS.mjs";
20
- export {
21
- Event,
22
- EventType,
23
- Message,
24
- MessageData,
25
- Meta,
26
- OperationEnd,
27
- OperationStart,
28
- TraceService,
29
- TraceSink,
30
- isOfType,
31
- layerConsole,
32
- layerNoop,
33
- noopWriter,
34
- testTraceService,
35
- write,
36
- writerLayerNoop
37
- };
38
- //# sourceMappingURL=Trace.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,149 +0,0 @@
1
- import {
2
- __export
3
- } from "./chunk-J5LGTIGS.mjs";
4
-
5
- // src/Trace.ts
6
- var Trace_exports = {};
7
- __export(Trace_exports, {
8
- Event: () => Event,
9
- EventType: () => EventType,
10
- Message: () => Message,
11
- MessageData: () => MessageData,
12
- Meta: () => Meta,
13
- OperationEnd: () => OperationEnd,
14
- OperationStart: () => OperationStart,
15
- TraceService: () => TraceService,
16
- TraceSink: () => TraceSink,
17
- isOfType: () => isOfType,
18
- layerConsole: () => layerConsole,
19
- layerNoop: () => layerNoop,
20
- noopWriter: () => noopWriter,
21
- testTraceService: () => testTraceService,
22
- write: () => write,
23
- writerLayerNoop: () => writerLayerNoop
24
- });
25
- import * as Context from "effect/Context";
26
- import * as Effect from "effect/Effect";
27
- import * as Layer from "effect/Layer";
28
- import * as Schema from "effect/Schema";
29
- import { Annotation, Obj, Type } from "@dxos/echo";
30
- var TraceService = class extends Context.Tag("@dxos/functions/TraceService")() {
31
- };
32
- var write = Effect.serviceFunction(TraceService, (_) => _.write);
33
- var EventType = (key, opts) => {
34
- return {
35
- key,
36
- schema: opts.schema,
37
- isEphemeral: opts.isEphemeral
38
- };
39
- };
40
- var Event = Schema.Struct({
41
- timestamp: Schema.Number,
42
- type: Schema.String,
43
- data: Schema.Unknown
44
- });
45
- var isOfType = (eventType, event) => {
46
- return event.type === eventType.key;
47
- };
48
- var Meta = Schema.Struct({
49
- pid: Schema.optional(Schema.String),
50
- parentPid: Schema.optional(Schema.String),
51
- processName: Schema.optional(Schema.String),
52
- /**
53
- * ID of the conversation feed object if present.
54
- */
55
- conversationId: Schema.optional(Obj.ID),
56
- /**
57
- * ID of the trigger object if invocation resulted from a trigger.
58
- */
59
- triggerId: Schema.optional(Obj.ID)
60
- });
61
- var MessageData = Schema.Struct({
62
- meta: Meta,
63
- isEphemeral: Schema.Boolean,
64
- events: Schema.Array(Event)
65
- });
66
- var Message = MessageData.pipe(Type.object({
67
- typename: "org.dxos.type.traceMessage",
68
- version: "0.1.0"
69
- }), Annotation.IconAnnotation.set({
70
- icon: "ph--note--regular",
71
- hue: "rose"
72
- }));
73
- var TraceSink = class extends Context.Tag("@dxos/functions/TraceSink")() {
74
- };
75
- var noopWriter = {
76
- write: () => {
77
- }
78
- };
79
- var writerLayerNoop = Layer.succeed(TraceService, noopWriter);
80
- var layerNoop = Layer.succeed(TraceSink, {
81
- write: () => {
82
- }
83
- });
84
- var layerConsole = Layer.succeed(TraceSink, {
85
- write: (message) => {
86
- console.log(message);
87
- }
88
- });
89
- var testTraceService = (opts = {}) => Layer.effect(TraceService, Effect.gen(function* () {
90
- const sink = yield* TraceSink;
91
- return {
92
- write: (event, data) => {
93
- sink.write(Obj.make(Message, {
94
- meta: opts.meta ?? {},
95
- isEphemeral: event.isEphemeral,
96
- events: [
97
- {
98
- type: event.key,
99
- timestamp: Date.now(),
100
- data
101
- }
102
- ]
103
- }));
104
- }
105
- };
106
- }));
107
- var OperationStart = EventType("operation.start", {
108
- schema: Schema.Struct({
109
- /** Operation key. */
110
- key: Schema.String,
111
- /** Human-readable operation name. */
112
- name: Schema.optional(Schema.String)
113
- }),
114
- isEphemeral: false
115
- });
116
- var OperationEnd = EventType("operation.end", {
117
- schema: Schema.Struct({
118
- /** Operation key. */
119
- key: Schema.String,
120
- /** Human-readable operation name. */
121
- name: Schema.optional(Schema.String),
122
- /** Outcome of the operation. */
123
- outcome: Schema.Literal("success", "failure"),
124
- /** Error message if the operation failed. */
125
- error: Schema.optional(Schema.String)
126
- }),
127
- isEphemeral: false
128
- });
129
-
130
- export {
131
- TraceService,
132
- write,
133
- EventType,
134
- Event,
135
- isOfType,
136
- Meta,
137
- MessageData,
138
- Message,
139
- TraceSink,
140
- noopWriter,
141
- writerLayerNoop,
142
- layerNoop,
143
- layerConsole,
144
- testTraceService,
145
- OperationStart,
146
- OperationEnd,
147
- Trace_exports
148
- };
149
- //# sourceMappingURL=chunk-5T7GOX2V.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/Trace.ts"],
4
- "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\n// @import-as-namespace\n\nimport * as Context from 'effect/Context';\nimport * as Effect from 'effect/Effect';\nimport * as Layer from 'effect/Layer';\nimport * as Schema from 'effect/Schema';\n\nimport { Annotation, Obj, Type } from '@dxos/echo';\n\n/**\n * Writes ephemeral or persistent events to the trace.\n * Exposed to processes and operations to record events to the trace.\n */\nexport interface TraceWriter {\n write<T>(eventType: EventType<T>, payload: NoInfer<T>): void;\n}\n\n/**\n * Service that writes events to the trace.\n * Exposed to processes and operations to record events to the trace.\n */\nexport class TraceService extends Context.Tag('@dxos/functions/TraceService')<TraceService, TraceWriter>() {}\n\n/**\n * Writes an event to the trace.\n */\nexport const write: <T>(eventType: EventType<T>, payload: NoInfer<T>) => Effect.Effect<void, never, TraceService> =\n Effect.serviceFunction(TraceService, (_) => _.write);\n\n/**\n * Defines an event type for the trace.\n */\nexport interface EventType<T> {\n readonly key: string;\n readonly schema: Schema.Schema<T, any>;\n readonly isEphemeral: boolean;\n}\n\nexport const EventType = <T>(\n key: string,\n opts: { schema: Schema.Schema<T, any>; isEphemeral: boolean },\n): EventType<T> => {\n return {\n key,\n schema: opts.schema,\n isEphemeral: opts.isEphemeral,\n };\n};\n\n/**\n * Extracts the payload type from an event type.\n */\nexport type PayloadType<E extends EventType<any>> = E extends EventType<infer T> ? T : never;\n\nexport const Event = Schema.Struct({\n timestamp: Schema.Number,\n type: Schema.String,\n data: Schema.Unknown, // Type-specific payload;\n});\nexport interface Event extends Schema.Schema.Type<typeof Event> {}\n\n/**\n * Checks if an event is of a given type.\n */\nexport const isOfType = <T, E extends Event>(eventType: EventType<T>, event: E): event is E & { data: T } => {\n return event.type === eventType.key;\n};\n\n/**\n * Metadata on the context of a trace message.\n */\n// TODO(dmaretskyi): Expand on this: conversation id, tool call id, etc.\nexport const Meta = Schema.Struct({\n pid: Schema.optional(Schema.String), // NOTE: Not Process.ID to avoid circular dependency.\n parentPid: Schema.optional(Schema.String),\n processName: Schema.optional(Schema.String),\n /**\n * ID of the conversation feed object if present.\n */\n conversationId: Schema.optional(Obj.ID),\n\n /**\n * ID of the trigger object if invocation resulted from a trigger.\n */\n triggerId: Schema.optional(Obj.ID),\n});\nexport interface Meta extends Schema.Schema.Type<typeof Meta> {}\n\n/**\n * Envelope for a set of events.\n */\nexport const MessageData = Schema.Struct({\n meta: Meta,\n\n isEphemeral: Schema.Boolean,\n events: Schema.Array(Event),\n});\nexport interface MessageData extends Schema.Schema.Type<typeof MessageData> {}\n\nexport const Message = MessageData.pipe(\n Type.object({\n typename: 'org.dxos.type.traceMessage',\n version: '0.1.0',\n }),\n Annotation.IconAnnotation.set({\n icon: 'ph--note--regular',\n hue: 'rose',\n }),\n);\nexport interface Message extends Schema.Schema.Type<typeof Message> {}\n\n/**\n * Sink for complete trace messages.\n */\nexport interface Sink {\n write(message: Message): void;\n}\n\n/**\n * Sink for complete trace messages.\n * The Process Manager forwards trace messages to it.\n */\n// TODO(dmaretskyi): Consider moving sink to the Process Manager.\nexport class TraceSink extends Context.Tag('@dxos/functions/TraceSink')<TraceSink, Sink>() {}\n\nexport const noopWriter: TraceWriter = {\n write: () => {},\n};\n\nexport const writerLayerNoop: Layer.Layer<TraceService> = Layer.succeed(TraceService, noopWriter);\n\nexport const layerNoop: Layer.Layer<TraceSink> = Layer.succeed(TraceSink, {\n write: () => {},\n});\n\nexport const layerConsole: Layer.Layer<TraceSink> = Layer.succeed(TraceSink, {\n write: (message) => {\n console.log(message);\n },\n});\n\nexport const testTraceService = (opts: { meta?: Meta } = {}): Layer.Layer<TraceService, never, TraceSink> =>\n Layer.effect(\n TraceService,\n Effect.gen(function* () {\n const sink = yield* TraceSink;\n return {\n write: (event, data) => {\n sink.write(\n Obj.make(Message, {\n meta: opts.meta ?? {},\n isEphemeral: event.isEphemeral,\n events: [{ type: event.key, timestamp: Date.now(), data }],\n }),\n );\n },\n };\n }),\n );\n\n//\n// Operation Trace Events\n//\n\n/**\n * Outcome of an operation invocation.\n */\nexport type OperationOutcome = 'success' | 'failure';\n\n/**\n * Operation invocation started.\n */\nexport const OperationStart = EventType('operation.start', {\n schema: Schema.Struct({\n /** Operation key. */\n key: Schema.String,\n /** Human-readable operation name. */\n name: Schema.optional(Schema.String),\n }),\n isEphemeral: false,\n});\n\n/**\n * Operation invocation ended.\n */\nexport const OperationEnd = EventType('operation.end', {\n schema: Schema.Struct({\n /** Operation key. */\n key: Schema.String,\n /** Human-readable operation name. */\n name: Schema.optional(Schema.String),\n /** Outcome of the operation. */\n outcome: Schema.Literal('success', 'failure'),\n /** Error message if the operation failed. */\n error: Schema.optional(Schema.String),\n }),\n isEphemeral: false,\n});\n"],
5
- "mappings": ";;;;;AAAA;;;;;;;;;;;;;;;;;;;AAMA,YAAYA,aAAa;AACzB,YAAYC,YAAY;AACxB,YAAYC,WAAW;AACvB,YAAYC,YAAY;AAExB,SAASC,YAAYC,KAAKC,YAAY;AAc/B,IAAMC,eAAN,cAAmCC,YAAI,8BAAA,EAAA,EAAA;AAA8D;AAKrG,IAAMC,QACJC,uBAAgBH,cAAc,CAACI,MAAMA,EAAEF,KAAK;AAW9C,IAAMG,YAAY,CACvBC,KACAC,SAAAA;AAEA,SAAO;IACLD;IACAE,QAAQD,KAAKC;IACbC,aAAaF,KAAKE;EACpB;AACF;AAOO,IAAMC,QAAeC,cAAO;EACjCC,WAAkBC;EAClBC,MAAaC;EACbC,MAAaC;AACf,CAAA;AAMO,IAAMC,WAAW,CAAqBC,WAAyBC,UAAAA;AACpE,SAAOA,MAAMN,SAASK,UAAUb;AAClC;AAMO,IAAMe,OAAcV,cAAO;EAChCW,KAAYC,gBAAgBR,aAAM;EAClCS,WAAkBD,gBAAgBR,aAAM;EACxCU,aAAoBF,gBAAgBR,aAAM;;;;EAI1CW,gBAAuBH,gBAASI,IAAIC,EAAE;;;;EAKtCC,WAAkBN,gBAASI,IAAIC,EAAE;AACnC,CAAA;AAMO,IAAME,cAAqBnB,cAAO;EACvCoB,MAAMV;EAENZ,aAAoBuB;EACpBC,QAAeC,aAAMxB,KAAAA;AACvB,CAAA;AAGO,IAAMyB,UAAUL,YAAYM,KACjCC,KAAKC,OAAO;EACVC,UAAU;EACVC,SAAS;AACX,CAAA,GACAC,WAAWC,eAAeC,IAAI;EAC5BC,MAAM;EACNC,KAAK;AACP,CAAA,CAAA;AAgBK,IAAMC,YAAN,cAAgC7C,YAAI,2BAAA,EAAA,EAAA;AAAiD;AAErF,IAAM8C,aAA0B;EACrC7C,OAAO,MAAA;EAAO;AAChB;AAEO,IAAM8C,kBAAmDC,cAAQjD,cAAc+C,UAAAA;AAE/E,IAAMG,YAA0CD,cAAQH,WAAW;EACxE5C,OAAO,MAAA;EAAO;AAChB,CAAA;AAEO,IAAMiD,eAA6CF,cAAQH,WAAW;EAC3E5C,OAAO,CAACkD,YAAAA;AACNC,YAAQC,IAAIF,OAAAA;EACd;AACF,CAAA;AAEO,IAAMG,mBAAmB,CAAChD,OAAwB,CAAC,MAClDiD,aACJxD,cACOyD,WAAI,aAAA;AACT,QAAMC,OAAO,OAAOZ;AACpB,SAAO;IACL5C,OAAO,CAACkB,OAAOJ,SAAAA;AACb0C,WAAKxD,MACHyB,IAAIgC,KAAKxB,SAAS;QAChBJ,MAAMxB,KAAKwB,QAAQ,CAAC;QACpBtB,aAAaW,MAAMX;QACnBwB,QAAQ;UAAC;YAAEnB,MAAMM,MAAMd;YAAKM,WAAWgD,KAAKC,IAAG;YAAI7C;UAAK;;MAC1D,CAAA,CAAA;IAEJ;EACF;AACF,CAAA,CAAA;AAeG,IAAM8C,iBAAiBzD,UAAU,mBAAmB;EACzDG,QAAeG,cAAO;;IAEpBL,KAAYS;;IAEZgD,MAAaxC,gBAAgBR,aAAM;EACrC,CAAA;EACAN,aAAa;AACf,CAAA;AAKO,IAAMuD,eAAe3D,UAAU,iBAAiB;EACrDG,QAAeG,cAAO;;IAEpBL,KAAYS;;IAEZgD,MAAaxC,gBAAgBR,aAAM;;IAEnCkD,SAAgBC,eAAQ,WAAW,SAAA;;IAEnCC,OAAc5C,gBAAgBR,aAAM;EACtC,CAAA;EACAN,aAAa;AACf,CAAA;",
6
- "names": ["Context", "Effect", "Layer", "Schema", "Annotation", "Obj", "Type", "TraceService", "Tag", "write", "serviceFunction", "_", "EventType", "key", "opts", "schema", "isEphemeral", "Event", "Struct", "timestamp", "Number", "type", "String", "data", "Unknown", "isOfType", "eventType", "event", "Meta", "pid", "optional", "parentPid", "processName", "conversationId", "Obj", "ID", "triggerId", "MessageData", "meta", "Boolean", "events", "Array", "Message", "pipe", "Type", "object", "typename", "version", "Annotation", "IconAnnotation", "set", "icon", "hue", "TraceSink", "noopWriter", "writerLayerNoop", "succeed", "layerNoop", "layerConsole", "message", "console", "log", "testTraceService", "effect", "gen", "sink", "make", "Date", "now", "OperationStart", "name", "OperationEnd", "outcome", "Literal", "error"]
7
- }
@@ -1,49 +0,0 @@
1
- // src/example/definitions.ts
2
- import * as Schema from "effect/Schema";
3
- import { Operation } from "@dxos/operation";
4
- var Fibonacci = Operation.make({
5
- meta: {
6
- key: "example.org/function/fib",
7
- name: "Fibonacci",
8
- description: "Function that calculates a Fibonacci number"
9
- },
10
- input: Schema.Struct({
11
- iterations: Schema.optional(Schema.Number).annotations({
12
- description: "Number of iterations",
13
- default: 1e5
14
- })
15
- }),
16
- output: Schema.Struct({
17
- result: Schema.String
18
- })
19
- });
20
- var Reply = Operation.make({
21
- meta: {
22
- key: "example.org/function/reply",
23
- name: "Reply",
24
- description: "Function that echoes the input"
25
- },
26
- input: Schema.Any,
27
- output: Schema.Any
28
- });
29
- var Sleep = Operation.make({
30
- meta: {
31
- key: "example.org/function/sleep",
32
- name: "Sleep",
33
- description: "Function that sleeps for a given amount of time"
34
- },
35
- input: Schema.Struct({
36
- duration: Schema.optional(Schema.Number).annotations({
37
- description: "Milliseconds to sleep",
38
- default: 1e5
39
- })
40
- }),
41
- output: Schema.Void
42
- });
43
-
44
- export {
45
- Fibonacci,
46
- Reply,
47
- Sleep
48
- };
49
- //# sourceMappingURL=chunk-IVDUS56O.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/example/definitions.ts"],
4
- "sourcesContent": ["//\n// Copyright 2026 DXOS.org\n//\n\nimport * as Schema from 'effect/Schema';\n\nimport { Operation } from '@dxos/operation';\n\nexport const Fibonacci = Operation.make({\n meta: {\n key: 'example.org/function/fib',\n name: 'Fibonacci',\n description: 'Function that calculates a Fibonacci number',\n },\n input: Schema.Struct({\n iterations: Schema.optional(Schema.Number).annotations({\n description: 'Number of iterations',\n default: 100_000,\n }),\n }),\n output: Schema.Struct({\n result: Schema.String,\n }),\n});\n\nexport const Reply = Operation.make({\n meta: {\n key: 'example.org/function/reply',\n name: 'Reply',\n description: 'Function that echoes the input',\n },\n input: Schema.Any,\n output: Schema.Any,\n});\n\nexport const Sleep = Operation.make({\n meta: {\n key: 'example.org/function/sleep',\n name: 'Sleep',\n description: 'Function that sleeps for a given amount of time',\n },\n input: Schema.Struct({\n duration: Schema.optional(Schema.Number).annotations({\n description: 'Milliseconds to sleep',\n default: 100_000,\n }),\n }),\n output: Schema.Void,\n});\n"],
5
- "mappings": ";AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAEnB,IAAMC,YAAYC,UAAUC,KAAK;EACtCC,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,aAAa;EACf;EACAC,OAAcC,cAAO;IACnBC,YAAmBC,gBAAgBC,aAAM,EAAEC,YAAY;MACrDN,aAAa;MACbO,SAAS;IACX,CAAA;EACF,CAAA;EACAC,QAAeN,cAAO;IACpBO,QAAeC;EACjB,CAAA;AACF,CAAA;AAEO,IAAMC,QAAQhB,UAAUC,KAAK;EAClCC,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,aAAa;EACf;EACAC,OAAcW;EACdJ,QAAeI;AACjB,CAAA;AAEO,IAAMC,QAAQlB,UAAUC,KAAK;EAClCC,MAAM;IACJC,KAAK;IACLC,MAAM;IACNC,aAAa;EACf;EACAC,OAAcC,cAAO;IACnBY,UAAiBV,gBAAgBC,aAAM,EAAEC,YAAY;MACnDN,aAAa;MACbO,SAAS;IACX,CAAA;EACF,CAAA;EACAC,QAAeO;AACjB,CAAA;",
6
- "names": ["Schema", "Operation", "Fibonacci", "Operation", "make", "meta", "key", "name", "description", "input", "Struct", "iterations", "optional", "Number", "annotations", "default", "output", "result", "String", "Reply", "Any", "Sleep", "duration", "Void"]
7
- }
@@ -1,10 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __export = (target, all) => {
3
- for (var name in all)
4
- __defProp(target, name, { get: all[name], enumerable: true });
5
- };
6
-
7
- export {
8
- __export
9
- };
10
- //# sourceMappingURL=chunk-J5LGTIGS.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": [],
4
- "sourcesContent": [],
5
- "mappings": "",
6
- "names": []
7
- }
@@ -1,23 +0,0 @@
1
- import {
2
- Fibonacci
3
- } from "./chunk-IVDUS56O.mjs";
4
- import "./chunk-J5LGTIGS.mjs";
5
-
6
- // src/example/fib.ts
7
- import * as Effect from "effect/Effect";
8
- import { Operation } from "@dxos/operation";
9
- var fib_default = Fibonacci.pipe(Operation.withHandler(Effect.fn(function* ({ iterations = 1e5 }) {
10
- let a = 0n;
11
- let b = 1n;
12
- for (let i = 0; i < iterations; i++) {
13
- a += b;
14
- b = a - b;
15
- }
16
- return {
17
- result: a.toString()
18
- };
19
- })));
20
- export {
21
- fib_default as default
22
- };
23
- //# sourceMappingURL=fib-N45KAC7C.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/example/fib.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/operation';\n\nimport { Fibonacci } from './definitions';\n\nexport default Fibonacci.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ iterations = 100_000 }) {\n let a = 0n;\n let b = 1n;\n for (let i = 0; i < iterations; i++) {\n a += b;\n b = a - b;\n }\n return { result: a.toString() };\n }),\n ),\n);\n"],
5
- "mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAI1B,IAAA,cAAeC,UAAUC,KACvBC,UAAUC,YACDC,UAAG,WAAW,EAAEC,aAAa,IAAO,GAAE;AAC3C,MAAIC,IAAI;AACR,MAAIC,IAAI;AACR,WAASC,IAAI,GAAGA,IAAIH,YAAYG,KAAK;AACnCF,SAAKC;AACLA,QAAID,IAAIC;EACV;AACA,SAAO;IAAEE,QAAQH,EAAEI,SAAQ;EAAG;AAChC,CAAA,CAAA,CAAA;",
6
- "names": ["Effect", "Operation", "Fibonacci", "pipe", "Operation", "withHandler", "fn", "iterations", "a", "b", "i", "result", "toString"]
7
- }
@@ -1,19 +0,0 @@
1
- import {
2
- Reply
3
- } from "./chunk-IVDUS56O.mjs";
4
- import "./chunk-J5LGTIGS.mjs";
5
-
6
- // src/example/reply.ts
7
- import * as Console from "effect/Console";
8
- import * as Effect from "effect/Effect";
9
- import { Operation } from "@dxos/operation";
10
- var reply_default = Reply.pipe(Operation.withHandler(Effect.fn(function* (input) {
11
- yield* Console.log("reply", {
12
- input
13
- });
14
- return input;
15
- })));
16
- export {
17
- reply_default as default
18
- };
19
- //# sourceMappingURL=reply-EUEPKNJF.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/example/reply.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Console from 'effect/Console';\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/operation';\n\nimport { Reply } from './definitions';\n\nexport default Reply.pipe(\n Operation.withHandler(\n Effect.fn(function* (input) {\n yield* Console.log('reply', { input });\n return input;\n }),\n ),\n);\n"],
5
- "mappings": ";;;;;;AAIA,YAAYA,aAAa;AACzB,YAAYC,YAAY;AAExB,SAASC,iBAAiB;AAI1B,IAAA,gBAAeC,MAAMC,KACnBC,UAAUC,YACDC,UAAG,WAAWC,OAAK;AACxB,SAAeC,YAAI,SAAS;IAAED;EAAM,CAAA;AACpC,SAAOA;AACT,CAAA,CAAA,CAAA;",
6
- "names": ["Console", "Effect", "Operation", "Reply", "pipe", "Operation", "withHandler", "fn", "input", "log"]
7
- }
@@ -1,15 +0,0 @@
1
- import {
2
- Sleep
3
- } from "./chunk-IVDUS56O.mjs";
4
- import "./chunk-J5LGTIGS.mjs";
5
-
6
- // src/example/sleep.ts
7
- import * as Effect from "effect/Effect";
8
- import { Operation } from "@dxos/operation";
9
- var sleep_default = Sleep.pipe(Operation.withHandler(Effect.fn(function* ({ duration = 1e5 }) {
10
- yield* Effect.sleep(duration);
11
- })));
12
- export {
13
- sleep_default as default
14
- };
15
- //# sourceMappingURL=sleep-PUK3D4FF.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/example/sleep.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Operation } from '@dxos/operation';\n\nimport { Sleep } from './definitions';\n\nexport default Sleep.pipe(\n Operation.withHandler(\n Effect.fn(function* ({ duration = 100_000 }) {\n yield* Effect.sleep(duration);\n }),\n ),\n);\n"],
5
- "mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,iBAAiB;AAI1B,IAAA,gBAAeC,MAAMC,KACnBC,UAAUC,YACDC,UAAG,WAAW,EAAEC,WAAW,IAAO,GAAE;AACzC,SAAcC,aAAMD,QAAAA;AACtB,CAAA,CAAA,CAAA;",
6
- "names": ["Effect", "Operation", "Sleep", "pipe", "Operation", "withHandler", "fn", "duration", "sleep"]
7
- }