@m4trix/core 0.14.0 → 0.15.1
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.
- package/README.md +1 -1
- package/dist/index.cjs +124 -788
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.js +123 -786
- package/dist/index.js.map +1 -1
- package/dist/matrix/index.cjs +122 -68
- package/dist/matrix/index.cjs.map +1 -1
- package/dist/matrix/index.d.ts +70 -17
- package/dist/matrix/index.js +121 -69
- package/dist/matrix/index.js.map +1 -1
- package/package.json +3 -22
- package/dist/stream/index.cjs +0 -716
- package/dist/stream/index.cjs.map +0 -1
- package/dist/stream/index.d.ts +0 -304
- package/dist/stream/index.js +0 -712
- package/dist/stream/index.js.map +0 -1
package/dist/matrix/index.d.ts
CHANGED
|
@@ -106,15 +106,15 @@ declare class Agent<TParams, TTriggerEvent = never, TEmitEvent = never> {
|
|
|
106
106
|
|
|
107
107
|
type BaseSchemaDefintion = Schema.Schema.Any;
|
|
108
108
|
|
|
109
|
-
type EventDef$
|
|
109
|
+
type EventDef$3 = AgentNetworkEventDef<string, Schema.Schema.Any>;
|
|
110
110
|
/** Extracts the envelope type (name, meta, payload) from an event definition */
|
|
111
|
-
type EventEnvelope<E extends EventDef$
|
|
111
|
+
type EventEnvelope$1<E extends EventDef$3> = E extends AgentNetworkEventDef<infer N, infer PS> ? {
|
|
112
112
|
name: N;
|
|
113
113
|
meta: EventMeta;
|
|
114
114
|
payload: Schema.Schema.Type<PS>;
|
|
115
115
|
} : never;
|
|
116
116
|
/** What the user passes to emit() – no meta required */
|
|
117
|
-
type EmitPayload<E extends EventDef$
|
|
117
|
+
type EmitPayload$1<E extends EventDef$3> = E extends AgentNetworkEventDef<infer N, infer PS> ? {
|
|
118
118
|
name: N;
|
|
119
119
|
payload: Schema.Schema.Type<PS>;
|
|
120
120
|
} : never;
|
|
@@ -126,7 +126,7 @@ type LogicFn<TParams, TTriggerEvent, TEmitEvent> = (ctx: {
|
|
|
126
126
|
runEvents: RunEvents;
|
|
127
127
|
contextEvents: ContextEvents;
|
|
128
128
|
}) => Promise<void>;
|
|
129
|
-
declare class AgentFactory<TParams = unknown, TListensTo extends EventDef$
|
|
129
|
+
declare class AgentFactory<TParams = unknown, TListensTo extends EventDef$3 = never, TEmits extends EventDef$3 = never> {
|
|
130
130
|
private _listensTo;
|
|
131
131
|
private _emits;
|
|
132
132
|
private _logic;
|
|
@@ -137,13 +137,13 @@ declare class AgentFactory<TParams = unknown, TListensTo extends EventDef$2 = ne
|
|
|
137
137
|
getListensTo(): ReadonlyArray<TListensTo>;
|
|
138
138
|
/** Union of all event definitions this agent can emit */
|
|
139
139
|
getEmits(): ReadonlyArray<TEmits>;
|
|
140
|
-
getLogic(): LogicFn<TParams, EventEnvelope<TListensTo>, EmitPayload<TEmits>> | undefined;
|
|
140
|
+
getLogic(): LogicFn<TParams, EventEnvelope$1<TListensTo>, EmitPayload$1<TEmits>> | undefined;
|
|
141
141
|
static run(): AgentFactory<unknown, never, never>;
|
|
142
142
|
params<TSchema extends BaseSchemaDefintion>(params: TSchema): AgentFactory<TSchema['Type'], TListensTo, TEmits>;
|
|
143
|
-
listensTo<E extends EventDef$
|
|
144
|
-
emits<E extends EventDef$
|
|
145
|
-
logic(fn: LogicFn<TParams, EventEnvelope<TListensTo>, EmitPayload<TEmits>>): AgentFactory<TParams, TListensTo, TEmits>;
|
|
146
|
-
produce(params: TParams): Agent<TParams, EventEnvelope<TListensTo>, EmitPayload<TEmits>>;
|
|
143
|
+
listensTo<E extends EventDef$3>(events: Array<E>): AgentFactory<TParams, TListensTo | E, TEmits>;
|
|
144
|
+
emits<E extends EventDef$3>(events: Array<E>): AgentFactory<TParams, TListensTo, TEmits | E>;
|
|
145
|
+
logic(fn: LogicFn<TParams, EventEnvelope$1<TListensTo>, EmitPayload$1<TEmits>>): AgentFactory<TParams, TListensTo, TEmits>;
|
|
146
|
+
produce(params: TParams): Agent<TParams, EventEnvelope$1<TListensTo>, EmitPayload$1<TEmits>>;
|
|
147
147
|
}
|
|
148
148
|
|
|
149
149
|
/**
|
|
@@ -171,7 +171,7 @@ declare const Sink: {
|
|
|
171
171
|
httpStream(): SinkDef;
|
|
172
172
|
};
|
|
173
173
|
declare function isHttpStreamSink(sink: SinkDef): boolean;
|
|
174
|
-
type EventDef$
|
|
174
|
+
type EventDef$2 = AgentNetworkEventDef<string, Schema.Schema.Any>;
|
|
175
175
|
type ChannelDef = {
|
|
176
176
|
readonly _tag: 'ChannelDef';
|
|
177
177
|
readonly name: ChannelName;
|
|
@@ -186,10 +186,10 @@ declare class ConfiguredChannel {
|
|
|
186
186
|
private _events;
|
|
187
187
|
private _sinks;
|
|
188
188
|
constructor(name: ChannelName);
|
|
189
|
-
events(events: ReadonlyArray<EventDef$
|
|
189
|
+
events(events: ReadonlyArray<EventDef$2>): this;
|
|
190
190
|
sink(sink: SinkDef): this;
|
|
191
191
|
sinks(sinks: ReadonlyArray<SinkDef>): this;
|
|
192
|
-
getEvents(): ReadonlyArray<EventDef$
|
|
192
|
+
getEvents(): ReadonlyArray<EventDef$2>;
|
|
193
193
|
getSinks(): ReadonlyArray<SinkDef>;
|
|
194
194
|
}
|
|
195
195
|
declare const Channel: {
|
|
@@ -298,7 +298,7 @@ type ExposedAPI = {
|
|
|
298
298
|
createStream: StreamFactory;
|
|
299
299
|
};
|
|
300
300
|
|
|
301
|
-
type EventDef = AgentNetworkEventDef<string, Schema.Schema.Any>;
|
|
301
|
+
type EventDef$1 = AgentNetworkEventDef<string, Schema.Schema.Any>;
|
|
302
302
|
/** Structural interface for any Agent – avoids variance issues with private fields. */
|
|
303
303
|
interface AnyAgent {
|
|
304
304
|
getId(): string;
|
|
@@ -326,7 +326,7 @@ type SpawnCallbackContext<TRegistry extends Record<string, AgentFactory> = Recor
|
|
|
326
326
|
spawn: SpawnFn;
|
|
327
327
|
};
|
|
328
328
|
type SpawnerBuilder<TRegistry extends Record<string, AgentFactory> = Record<string, AgentFactory>> = {
|
|
329
|
-
listen(channel: ConfiguredChannel, event: EventDef): SpawnerBuilder<TRegistry>;
|
|
329
|
+
listen(channel: ConfiguredChannel, event: EventDef$1): SpawnerBuilder<TRegistry>;
|
|
330
330
|
registry<R extends Record<string, AgentFactory>>(reg: R): SpawnerBuilder<R>;
|
|
331
331
|
defaultBinding(fn: (ctx: {
|
|
332
332
|
kind: string;
|
|
@@ -341,6 +341,7 @@ type SetupContext = {
|
|
|
341
341
|
createChannel: (name: string) => ConfiguredChannel;
|
|
342
342
|
sink: typeof Sink;
|
|
343
343
|
registerAgent: (agent: AnyAgent) => AgentBinding;
|
|
344
|
+
registerAggregator: (aggregator: AnyAgent) => AgentBinding;
|
|
344
345
|
spawner: (factory: typeof AgentFactory) => SpawnerBuilder;
|
|
345
346
|
};
|
|
346
347
|
type AgentRegistration = {
|
|
@@ -351,7 +352,7 @@ type AgentRegistration = {
|
|
|
351
352
|
type SpawnerRegistration = {
|
|
352
353
|
factoryClass: typeof AgentFactory;
|
|
353
354
|
listenChannel?: ConfiguredChannel;
|
|
354
|
-
listenEvent?: EventDef;
|
|
355
|
+
listenEvent?: EventDef$1;
|
|
355
356
|
registry: Record<string, AgentFactory>;
|
|
356
357
|
defaultBindingFn?: (ctx: {
|
|
357
358
|
kind: string;
|
|
@@ -372,6 +373,7 @@ declare class AgentNetwork {
|
|
|
372
373
|
private addChannel;
|
|
373
374
|
private setMainChannel;
|
|
374
375
|
private registerAgentInternal;
|
|
376
|
+
private registerAggregatorInternal;
|
|
375
377
|
private createSpawnerInternal;
|
|
376
378
|
getChannels(): Map<string, ConfiguredChannel>;
|
|
377
379
|
getMainChannel(): ConfiguredChannel | undefined;
|
|
@@ -401,6 +403,55 @@ declare class AgentNetwork {
|
|
|
401
403
|
private runScoped;
|
|
402
404
|
}
|
|
403
405
|
|
|
406
|
+
type EventDef = AgentNetworkEventDef<string, Schema.Schema.Any>;
|
|
407
|
+
type EventEnvelope<E extends EventDef> = E extends AgentNetworkEventDef<infer N, infer PS> ? {
|
|
408
|
+
name: N;
|
|
409
|
+
meta: EventMeta;
|
|
410
|
+
payload: Schema.Schema.Type<PS>;
|
|
411
|
+
} : never;
|
|
412
|
+
type EmitPayload<E extends EventDef> = E extends AgentNetworkEventDef<infer N, infer PS> ? {
|
|
413
|
+
name: N;
|
|
414
|
+
payload: Schema.Schema.Type<PS>;
|
|
415
|
+
} : never;
|
|
416
|
+
type EmitWhenFn<TTriggerEvent> = (ctx: {
|
|
417
|
+
triggerEvent: TTriggerEvent;
|
|
418
|
+
runEvents: RunEvents;
|
|
419
|
+
contextEvents: ContextEvents;
|
|
420
|
+
}) => boolean | Promise<boolean>;
|
|
421
|
+
type MapToEmitFn<TTriggerEvent, TEmitEvent> = (ctx: {
|
|
422
|
+
triggerEvent: TTriggerEvent;
|
|
423
|
+
emit: (event: TEmitEvent) => void;
|
|
424
|
+
runEvents: RunEvents;
|
|
425
|
+
contextEvents: ContextEvents;
|
|
426
|
+
}) => void | Promise<void>;
|
|
427
|
+
declare class EventAggregator<TListensTo extends EventDef = never, TEmits extends EventDef = never> {
|
|
428
|
+
private _listensTo;
|
|
429
|
+
private _emits;
|
|
430
|
+
private _emitWhen;
|
|
431
|
+
private constructor();
|
|
432
|
+
static listensTo<E extends EventDef>(events: Array<E>): EventAggregator<E, never>;
|
|
433
|
+
emits<E extends EventDef>(events: Array<E>): EventAggregator<TListensTo, TEmits | E>;
|
|
434
|
+
emitWhen(fn: EmitWhenFn<EventEnvelope<TListensTo>>): EventAggregator<TListensTo, TEmits>;
|
|
435
|
+
mapToEmit(fn: MapToEmitFn<EventEnvelope<TListensTo>, EmitPayload<TEmits>>): EventAggregatorInstance<EventEnvelope<TListensTo>, EmitPayload<TEmits>>;
|
|
436
|
+
}
|
|
437
|
+
type EventAggregatorInstanceCtor<TTriggerEvent, TEmitEvent> = {
|
|
438
|
+
listensTo: ReadonlyArray<string>;
|
|
439
|
+
emitWhen: EmitWhenFn<TTriggerEvent>;
|
|
440
|
+
mapToEmit: MapToEmitFn<TTriggerEvent, TEmitEvent>;
|
|
441
|
+
};
|
|
442
|
+
declare class EventAggregatorInstance<TTriggerEvent, TEmitEvent> {
|
|
443
|
+
#private;
|
|
444
|
+
constructor({ listensTo, emitWhen, mapToEmit, }: EventAggregatorInstanceCtor<TTriggerEvent, TEmitEvent>);
|
|
445
|
+
getId(): string;
|
|
446
|
+
getListensTo(): readonly string[];
|
|
447
|
+
invoke(options?: {
|
|
448
|
+
triggerEvent?: TTriggerEvent;
|
|
449
|
+
emit?: (event: TEmitEvent) => void;
|
|
450
|
+
runEvents?: RunEvents;
|
|
451
|
+
contextEvents?: ContextEvents;
|
|
452
|
+
}): Promise<void>;
|
|
453
|
+
}
|
|
454
|
+
|
|
404
455
|
/**
|
|
405
456
|
* Branded type for layer/dependency names. Enforces camelCase at runtime via refinement.
|
|
406
457
|
* Used internally for parsing, validation, and uniqueness enforcement across layers.
|
|
@@ -427,7 +478,9 @@ type DependenciesToLayers<T> = T extends DepedencyLayerDef<infer N, infer DepTyp
|
|
|
427
478
|
} : never;
|
|
428
479
|
type UnionToIntersection<U> = (U extends unknown ? (k: U) => void : never) extends (k: infer I) => void ? I : never;
|
|
429
480
|
/** Build layers object from union of dependency types */
|
|
430
|
-
type LayersFromDeps<T extends DepedencyLayerDef<string, unknown, Schema.Schema.Any>> = [
|
|
481
|
+
type LayersFromDeps<T extends DepedencyLayerDef<string, unknown, Schema.Schema.Any>> = [
|
|
482
|
+
T
|
|
483
|
+
] extends [never] ? Record<string, never> : UnionToIntersection<DependenciesToLayers<T>>;
|
|
431
484
|
type DepedencyLayerBuilder<N extends string, ConfigSchema extends Schema.Schema.Any> = DepedencyLayerDef<N, object, ConfigSchema> & {
|
|
432
485
|
define<_DepType>(): 'config' extends keyof _DepType ? ReservedConfigError : DepedencyLayerDef<N, _DepType, ConfigSchema>;
|
|
433
486
|
};
|
|
@@ -590,4 +643,4 @@ declare const consoleTracer: Tracer.Tracer;
|
|
|
590
643
|
*/
|
|
591
644
|
declare const consoleTracerLayer: Layer.Layer<never>;
|
|
592
645
|
|
|
593
|
-
export { Agent, AgentBinding, AgentFactory, AgentNetwork, AgentNetworkEvent, AgentNetworkEventDef, AnyAgent, AuthResult, Channel, ChannelDef, ChannelName, ConfiguredChannel, ContextEvents, DepedencyLayer, DepedencyLayerDef, Done, EmitPayload, EnvelopeLike, EventEnvelope, EventMeta, EventMetaSchema, EventPlane, ExposeAuthError, ExposeOptions, ExposeRequest, ExposeSelect, ExposedAPI, ExposedStream, ExpressEndpoint, ExpressEndpointOptions, ExpressHandler, ExpressRequest, ExpressResponse, LayerName, LayersFromDeps, NextEndpoint, NextEndpointOptions, NextGetHandler, OnRequestContext, RunEvents, SetupContext, Sink, SinkDef, Skill, SkillDefineContext, SkillInstance, SkillRuntimeOptions, SpawnCallbackContext, SpawnFn, SpawnerBuilder, StreamFactory, UnboundEvent, consoleTracer, consoleTracerLayer, formatSSE, isHttpStreamSink, toSSEStream };
|
|
646
|
+
export { Agent, AgentBinding, AgentFactory, AgentNetwork, AgentNetworkEvent, AgentNetworkEventDef, AnyAgent, AuthResult, Channel, ChannelDef, ChannelName, ConfiguredChannel, ContextEvents, DepedencyLayer, DepedencyLayerDef, Done, EmitPayload$1 as EmitPayload, EnvelopeLike, EventAggregator, EventAggregatorInstance, EventEnvelope$1 as EventEnvelope, EventMeta, EventMetaSchema, EventPlane, ExposeAuthError, ExposeOptions, ExposeRequest, ExposeSelect, ExposedAPI, ExposedStream, ExpressEndpoint, ExpressEndpointOptions, ExpressHandler, ExpressRequest, ExpressResponse, LayerName, LayersFromDeps, NextEndpoint, NextEndpointOptions, NextGetHandler, OnRequestContext, RunEvents, SetupContext, Sink, SinkDef, Skill, SkillDefineContext, SkillInstance, SkillRuntimeOptions, SpawnCallbackContext, SpawnFn, SpawnerBuilder, StreamFactory, UnboundEvent, consoleTracer, consoleTracerLayer, formatSSE, isHttpStreamSink, toSSEStream };
|
package/dist/matrix/index.js
CHANGED
|
@@ -225,10 +225,7 @@ var runSubscriber = (agent, publishesTo, dequeue, plane, emitQueue, channelName)
|
|
|
225
225
|
if (listensTo.length > 0 && !listensTo.includes(envelope.name)) {
|
|
226
226
|
return;
|
|
227
227
|
}
|
|
228
|
-
const runEvents = plane.getRunEvents(
|
|
229
|
-
envelope.meta.runId,
|
|
230
|
-
envelope.meta.contextId
|
|
231
|
-
);
|
|
228
|
+
const runEvents = plane.getRunEvents(envelope.meta.runId, envelope.meta.contextId);
|
|
232
229
|
const contextEvents = plane.getContextEvents(envelope.meta.contextId);
|
|
233
230
|
yield* Effect.withSpan("agent.listen", {
|
|
234
231
|
attributes: {
|
|
@@ -263,9 +260,7 @@ var runSubscriber = (agent, publishesTo, dequeue, plane, emitQueue, channelName)
|
|
|
263
260
|
).catch(() => {
|
|
264
261
|
});
|
|
265
262
|
} else {
|
|
266
|
-
Effect.runFork(
|
|
267
|
-
plane.publishToChannels(publishesTo, fullEnvelope)
|
|
268
|
-
);
|
|
263
|
+
Effect.runFork(plane.publishToChannels(publishesTo, fullEnvelope));
|
|
269
264
|
}
|
|
270
265
|
},
|
|
271
266
|
runEvents,
|
|
@@ -291,14 +286,7 @@ var run = (network, plane, options) => Effect.gen(function* () {
|
|
|
291
286
|
for (const reg of registrations.values()) {
|
|
292
287
|
for (const channel of reg.subscribedTo) {
|
|
293
288
|
const dequeue = yield* plane.subscribe(channel.name);
|
|
294
|
-
yield* runSubscriber(
|
|
295
|
-
reg.agent,
|
|
296
|
-
reg.publishesTo,
|
|
297
|
-
dequeue,
|
|
298
|
-
plane,
|
|
299
|
-
emitQueue,
|
|
300
|
-
channel.name
|
|
301
|
-
);
|
|
289
|
+
yield* runSubscriber(reg.agent, reg.publishesTo, dequeue, plane, emitQueue, channel.name);
|
|
302
290
|
}
|
|
303
291
|
}
|
|
304
292
|
yield* Effect.never;
|
|
@@ -366,14 +354,7 @@ function streamFromDequeue(take, signal, eventFilter) {
|
|
|
366
354
|
};
|
|
367
355
|
}
|
|
368
356
|
function expose(network, options) {
|
|
369
|
-
const {
|
|
370
|
-
auth,
|
|
371
|
-
select,
|
|
372
|
-
plane: providedPlane,
|
|
373
|
-
onRequest,
|
|
374
|
-
triggerEvents,
|
|
375
|
-
tracingLayer
|
|
376
|
-
} = options;
|
|
357
|
+
const { auth, select, plane: providedPlane, onRequest, triggerEvents, tracingLayer } = options;
|
|
377
358
|
const triggerEventDef = triggerEvents?.[0];
|
|
378
359
|
const triggerEventName = triggerEventDef?.name ?? "request";
|
|
379
360
|
const channels = resolveChannels(network, select);
|
|
@@ -420,10 +401,8 @@ function expose(network, options) {
|
|
|
420
401
|
meta,
|
|
421
402
|
payload: opts.event.payload
|
|
422
403
|
};
|
|
423
|
-
Effect.runPromise(plane.publish(targetChannel, envelope)).catch(
|
|
424
|
-
|
|
425
|
-
}
|
|
426
|
-
);
|
|
404
|
+
Effect.runPromise(plane.publish(targetChannel, envelope)).catch(() => {
|
|
405
|
+
});
|
|
427
406
|
};
|
|
428
407
|
const dequeue = yield* plane.subscribe(channels[0]);
|
|
429
408
|
if (onRequest) {
|
|
@@ -463,10 +442,7 @@ function expose(network, options) {
|
|
|
463
442
|
if (auth) {
|
|
464
443
|
const result = await auth(req);
|
|
465
444
|
if (!result.allowed) {
|
|
466
|
-
throw new ExposeAuthError(
|
|
467
|
-
result.message ?? "Unauthorized",
|
|
468
|
-
result.status ?? 401
|
|
469
|
-
);
|
|
445
|
+
throw new ExposeAuthError(result.message ?? "Unauthorized", result.status ?? 401);
|
|
470
446
|
}
|
|
471
447
|
}
|
|
472
448
|
return consumer ? createStream(req, consumer) : createStream(req);
|
|
@@ -501,6 +477,7 @@ var AgentNetwork = class _AgentNetwork {
|
|
|
501
477
|
createChannel: (name) => network.addChannel(name),
|
|
502
478
|
sink: Sink,
|
|
503
479
|
registerAgent: (agent) => network.registerAgentInternal(agent),
|
|
480
|
+
registerAggregator: (aggregator) => network.registerAggregatorInternal(aggregator),
|
|
504
481
|
spawner: (factory) => network.createSpawnerInternal(factory)
|
|
505
482
|
};
|
|
506
483
|
callback(ctx);
|
|
@@ -535,6 +512,9 @@ var AgentNetwork = class _AgentNetwork {
|
|
|
535
512
|
};
|
|
536
513
|
return binding;
|
|
537
514
|
}
|
|
515
|
+
registerAggregatorInternal(aggregator) {
|
|
516
|
+
return this.registerAgentInternal(aggregator);
|
|
517
|
+
}
|
|
538
518
|
createSpawnerInternal(factoryClass) {
|
|
539
519
|
const reg = {
|
|
540
520
|
factoryClass,
|
|
@@ -639,7 +619,9 @@ var AgentNetworkEvent = {
|
|
|
639
619
|
const makeBound = (meta, payload2) => Effect.runSync(
|
|
640
620
|
decodeEnvelope({ name, meta, payload: payload2 })
|
|
641
621
|
);
|
|
642
|
-
const makeEffect = (payload2) => decodePayload(payload2).pipe(
|
|
622
|
+
const makeEffect = (payload2) => decodePayload(payload2).pipe(
|
|
623
|
+
Effect.map((p) => ({ name, payload: p }))
|
|
624
|
+
);
|
|
643
625
|
const makeBoundEffect = (meta, payload2) => decodeEnvelope({ name, meta, payload: payload2 });
|
|
644
626
|
const is = Schema.is(envelopeSchema);
|
|
645
627
|
return {
|
|
@@ -656,20 +638,110 @@ var AgentNetworkEvent = {
|
|
|
656
638
|
};
|
|
657
639
|
}
|
|
658
640
|
};
|
|
659
|
-
var
|
|
641
|
+
var EventAggregator = class _EventAggregator {
|
|
642
|
+
constructor({
|
|
643
|
+
listensTo = [],
|
|
644
|
+
emits = [],
|
|
645
|
+
emitWhen
|
|
646
|
+
}) {
|
|
647
|
+
this._listensTo = listensTo;
|
|
648
|
+
this._emits = emits;
|
|
649
|
+
this._emitWhen = emitWhen;
|
|
650
|
+
}
|
|
651
|
+
static listensTo(events) {
|
|
652
|
+
return new _EventAggregator({ listensTo: [...events] });
|
|
653
|
+
}
|
|
654
|
+
emits(events) {
|
|
655
|
+
return new _EventAggregator({
|
|
656
|
+
listensTo: this._listensTo,
|
|
657
|
+
emits: [...this._emits, ...events],
|
|
658
|
+
emitWhen: this._emitWhen
|
|
659
|
+
});
|
|
660
|
+
}
|
|
661
|
+
emitWhen(fn) {
|
|
662
|
+
return new _EventAggregator({
|
|
663
|
+
listensTo: this._listensTo,
|
|
664
|
+
emits: this._emits,
|
|
665
|
+
emitWhen: fn
|
|
666
|
+
});
|
|
667
|
+
}
|
|
668
|
+
mapToEmit(fn) {
|
|
669
|
+
return new EventAggregatorInstance({
|
|
670
|
+
listensTo: this._listensTo.map((eventDef) => eventDef.name),
|
|
671
|
+
emitWhen: this._emitWhen ?? (() => true),
|
|
672
|
+
mapToEmit: fn
|
|
673
|
+
});
|
|
674
|
+
}
|
|
675
|
+
};
|
|
676
|
+
var _id, _listensTo, _emitWhen, _mapToEmit;
|
|
677
|
+
var EventAggregatorInstance = class {
|
|
678
|
+
constructor({
|
|
679
|
+
listensTo,
|
|
680
|
+
emitWhen,
|
|
681
|
+
mapToEmit
|
|
682
|
+
}) {
|
|
683
|
+
__privateAdd(this, _id, void 0);
|
|
684
|
+
__privateAdd(this, _listensTo, void 0);
|
|
685
|
+
__privateAdd(this, _emitWhen, void 0);
|
|
686
|
+
__privateAdd(this, _mapToEmit, void 0);
|
|
687
|
+
__privateSet(this, _id, `event-aggregator-${randomUUID()}`);
|
|
688
|
+
__privateSet(this, _listensTo, listensTo);
|
|
689
|
+
__privateSet(this, _emitWhen, emitWhen);
|
|
690
|
+
__privateSet(this, _mapToEmit, mapToEmit);
|
|
691
|
+
}
|
|
692
|
+
getId() {
|
|
693
|
+
return __privateGet(this, _id);
|
|
694
|
+
}
|
|
695
|
+
getListensTo() {
|
|
696
|
+
return __privateGet(this, _listensTo);
|
|
697
|
+
}
|
|
698
|
+
async invoke(options) {
|
|
699
|
+
const { triggerEvent, emit, runEvents, contextEvents } = options ?? {};
|
|
700
|
+
if (triggerEvent == null) {
|
|
701
|
+
return;
|
|
702
|
+
}
|
|
703
|
+
const emitFn = emit ?? ((_event) => {
|
|
704
|
+
});
|
|
705
|
+
const runEventsValue = runEvents ?? [];
|
|
706
|
+
const contextEventsValue = contextEvents ?? {
|
|
707
|
+
all: [],
|
|
708
|
+
byRun: () => [],
|
|
709
|
+
map: /* @__PURE__ */ new Map()
|
|
710
|
+
};
|
|
711
|
+
const shouldEmit = await __privateGet(this, _emitWhen).call(this, {
|
|
712
|
+
triggerEvent,
|
|
713
|
+
runEvents: runEventsValue,
|
|
714
|
+
contextEvents: contextEventsValue
|
|
715
|
+
});
|
|
716
|
+
if (!shouldEmit) {
|
|
717
|
+
return;
|
|
718
|
+
}
|
|
719
|
+
await __privateGet(this, _mapToEmit).call(this, {
|
|
720
|
+
triggerEvent,
|
|
721
|
+
emit: emitFn,
|
|
722
|
+
runEvents: runEventsValue,
|
|
723
|
+
contextEvents: contextEventsValue
|
|
724
|
+
});
|
|
725
|
+
}
|
|
726
|
+
};
|
|
727
|
+
_id = new WeakMap();
|
|
728
|
+
_listensTo = new WeakMap();
|
|
729
|
+
_emitWhen = new WeakMap();
|
|
730
|
+
_mapToEmit = new WeakMap();
|
|
731
|
+
var _params, _logic, _id2, _listensTo2;
|
|
660
732
|
var Agent = class {
|
|
661
733
|
constructor(logic, params, listensTo) {
|
|
662
734
|
__privateAdd(this, _params, void 0);
|
|
663
735
|
__privateAdd(this, _logic, void 0);
|
|
664
|
-
__privateAdd(this,
|
|
665
|
-
__privateAdd(this,
|
|
736
|
+
__privateAdd(this, _id2, void 0);
|
|
737
|
+
__privateAdd(this, _listensTo2, void 0);
|
|
666
738
|
__privateSet(this, _logic, logic);
|
|
667
739
|
__privateSet(this, _params, params);
|
|
668
|
-
__privateSet(this,
|
|
669
|
-
__privateSet(this,
|
|
740
|
+
__privateSet(this, _id2, `agent-${randomUUID()}`);
|
|
741
|
+
__privateSet(this, _listensTo2, listensTo ?? []);
|
|
670
742
|
}
|
|
671
743
|
getListensTo() {
|
|
672
|
-
return __privateGet(this,
|
|
744
|
+
return __privateGet(this, _listensTo2);
|
|
673
745
|
}
|
|
674
746
|
async invoke(options) {
|
|
675
747
|
const { triggerEvent, emit, runEvents, contextEvents } = options ?? {};
|
|
@@ -688,13 +760,13 @@ var Agent = class {
|
|
|
688
760
|
});
|
|
689
761
|
}
|
|
690
762
|
getId() {
|
|
691
|
-
return __privateGet(this,
|
|
763
|
+
return __privateGet(this, _id2);
|
|
692
764
|
}
|
|
693
765
|
};
|
|
694
766
|
_params = new WeakMap();
|
|
695
767
|
_logic = new WeakMap();
|
|
696
|
-
|
|
697
|
-
|
|
768
|
+
_id2 = new WeakMap();
|
|
769
|
+
_listensTo2 = new WeakMap();
|
|
698
770
|
|
|
699
771
|
// src/matrix/agent-factory.ts
|
|
700
772
|
var AgentFactory = class _AgentFactory {
|
|
@@ -879,9 +951,7 @@ var Skill = class _Skill {
|
|
|
879
951
|
const layersObj = runtime?.layers ?? {};
|
|
880
952
|
const chunks = [];
|
|
881
953
|
const emit = (chunk) => {
|
|
882
|
-
const decoded = Effect.runSync(
|
|
883
|
-
decodeChunk(chunk)
|
|
884
|
-
);
|
|
954
|
+
const decoded = Effect.runSync(decodeChunk(chunk));
|
|
885
955
|
chunks.push(decoded);
|
|
886
956
|
};
|
|
887
957
|
const done = await defineFn({
|
|
@@ -889,9 +959,7 @@ var Skill = class _Skill {
|
|
|
889
959
|
emit,
|
|
890
960
|
layers: layersObj
|
|
891
961
|
});
|
|
892
|
-
const decodedDone = Effect.runSync(
|
|
893
|
-
decodeDone(done)
|
|
894
|
-
);
|
|
962
|
+
const decodedDone = Effect.runSync(decodeDone(done));
|
|
895
963
|
return { chunks, done: decodedDone };
|
|
896
964
|
};
|
|
897
965
|
return {
|
|
@@ -902,9 +970,7 @@ var Skill = class _Skill {
|
|
|
902
970
|
const layersObj = runtime?.layers ?? {};
|
|
903
971
|
const chunks = [];
|
|
904
972
|
const emit = (chunk) => {
|
|
905
|
-
const decoded = Effect.runSync(
|
|
906
|
-
decodeChunk(chunk)
|
|
907
|
-
);
|
|
973
|
+
const decoded = Effect.runSync(decodeChunk(chunk));
|
|
908
974
|
chunks.push(decoded);
|
|
909
975
|
};
|
|
910
976
|
const done = await defineFn({
|
|
@@ -912,9 +978,7 @@ var Skill = class _Skill {
|
|
|
912
978
|
emit,
|
|
913
979
|
layers: layersObj
|
|
914
980
|
});
|
|
915
|
-
const decodedDone = Effect.runSync(
|
|
916
|
-
decodeDone(done)
|
|
917
|
-
);
|
|
981
|
+
const decodedDone = Effect.runSync(decodeDone(done));
|
|
918
982
|
for (const c of chunks) {
|
|
919
983
|
yield c;
|
|
920
984
|
}
|
|
@@ -1019,9 +1083,7 @@ var NextEndpoint = {
|
|
|
1019
1083
|
var ExpressEndpoint = {
|
|
1020
1084
|
from(api, options) {
|
|
1021
1085
|
if (api.protocol !== "sse") {
|
|
1022
|
-
throw new Error(
|
|
1023
|
-
`ExpressEndpoint: unsupported protocol "${api.protocol}"`
|
|
1024
|
-
);
|
|
1086
|
+
throw new Error(`ExpressEndpoint: unsupported protocol "${api.protocol}"`);
|
|
1025
1087
|
}
|
|
1026
1088
|
const { requestToContextId, requestToRunId } = options;
|
|
1027
1089
|
return {
|
|
@@ -1124,21 +1186,11 @@ function getDepth(parent) {
|
|
|
1124
1186
|
return 1 + getDepth(p.parent);
|
|
1125
1187
|
}
|
|
1126
1188
|
var consoleTracer = Tracer.make({
|
|
1127
|
-
span: (name, parent, context, links, startTime, kind) => new ConsoleSpan(
|
|
1128
|
-
name,
|
|
1129
|
-
parent,
|
|
1130
|
-
context,
|
|
1131
|
-
links,
|
|
1132
|
-
startTime,
|
|
1133
|
-
kind,
|
|
1134
|
-
getDepth(parent)
|
|
1135
|
-
),
|
|
1189
|
+
span: (name, parent, context, links, startTime, kind) => new ConsoleSpan(name, parent, context, links, startTime, kind, getDepth(parent)),
|
|
1136
1190
|
context: (f) => f()
|
|
1137
1191
|
});
|
|
1138
|
-
var consoleTracerLayer = Layer.setTracer(
|
|
1139
|
-
consoleTracer
|
|
1140
|
-
);
|
|
1192
|
+
var consoleTracerLayer = Layer.setTracer(consoleTracer);
|
|
1141
1193
|
|
|
1142
|
-
export { Agent, AgentFactory, AgentNetwork, AgentNetworkEvent, Channel, ChannelName, ConfiguredChannel, DepedencyLayer, Done, EventMetaSchema, ExposeAuthError, ExpressEndpoint, LayerName, NextEndpoint, Sink, Skill, consoleTracer, consoleTracerLayer, formatSSE, isHttpStreamSink, toSSEStream };
|
|
1194
|
+
export { Agent, AgentFactory, AgentNetwork, AgentNetworkEvent, Channel, ChannelName, ConfiguredChannel, DepedencyLayer, Done, EventAggregator, EventAggregatorInstance, EventMetaSchema, ExposeAuthError, ExpressEndpoint, LayerName, NextEndpoint, Sink, Skill, consoleTracer, consoleTracerLayer, formatSSE, isHttpStreamSink, toSSEStream };
|
|
1143
1195
|
//# sourceMappingURL=out.js.map
|
|
1144
1196
|
//# sourceMappingURL=index.js.map
|