@spine-event-engine/server 2.0.0-snapshot.22 → 2.0.0-snapshot.23

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 (126) hide show
  1. package/README.md +104 -7
  2. package/REFERENCE.md +194 -19
  3. package/dist/agent/agent-admission.d.ts +80 -0
  4. package/dist/agent/agent-admission.d.ts.map +1 -0
  5. package/dist/agent/agent-admission.js +127 -0
  6. package/dist/agent/agent-admission.js.map +1 -0
  7. package/dist/agent/agent-ai-binding.d.ts +24 -0
  8. package/dist/agent/agent-ai-binding.d.ts.map +1 -0
  9. package/dist/agent/agent-ai-binding.js +48 -0
  10. package/dist/agent/agent-ai-binding.js.map +1 -0
  11. package/dist/agent/agent-ai-runtime.d.ts +76 -0
  12. package/dist/agent/agent-ai-runtime.d.ts.map +1 -0
  13. package/dist/agent/agent-ai-runtime.js +1269 -0
  14. package/dist/agent/agent-ai-runtime.js.map +1 -0
  15. package/dist/agent/agent-execution-capacity.d.ts +43 -0
  16. package/dist/agent/agent-execution-capacity.d.ts.map +1 -0
  17. package/dist/agent/agent-execution-capacity.js +147 -0
  18. package/dist/agent/agent-execution-capacity.js.map +1 -0
  19. package/dist/agent/agent-execution-fault.d.ts +18 -0
  20. package/dist/agent/agent-execution-fault.d.ts.map +1 -0
  21. package/dist/agent/agent-execution-fault.js +31 -0
  22. package/dist/agent/agent-execution-fault.js.map +1 -0
  23. package/dist/agent/agent-execution-session.d.ts +103 -0
  24. package/dist/agent/agent-execution-session.d.ts.map +1 -0
  25. package/dist/agent/agent-execution-session.js +238 -0
  26. package/dist/agent/agent-execution-session.js.map +1 -0
  27. package/dist/agent/agent-history.d.ts +148 -0
  28. package/dist/agent/agent-history.d.ts.map +1 -0
  29. package/dist/agent/agent-history.js +340 -0
  30. package/dist/agent/agent-history.js.map +1 -0
  31. package/dist/agent/agent-interaction-audit.d.ts +58 -0
  32. package/dist/agent/agent-interaction-audit.d.ts.map +1 -0
  33. package/dist/agent/agent-interaction-audit.js +114 -0
  34. package/dist/agent/agent-interaction-audit.js.map +1 -0
  35. package/dist/agent/agent-interaction-events.d.ts +40 -0
  36. package/dist/agent/agent-interaction-events.d.ts.map +1 -0
  37. package/dist/agent/agent-interaction-events.js +129 -0
  38. package/dist/agent/agent-interaction-events.js.map +1 -0
  39. package/dist/agent/agent-mcp-budget.d.ts +125 -0
  40. package/dist/agent/agent-mcp-budget.d.ts.map +1 -0
  41. package/dist/agent/agent-mcp-budget.js +566 -0
  42. package/dist/agent/agent-mcp-budget.js.map +1 -0
  43. package/dist/agent/agent-mcp-host.d.ts +125 -0
  44. package/dist/agent/agent-mcp-host.d.ts.map +1 -0
  45. package/dist/agent/agent-mcp-host.js +15 -0
  46. package/dist/agent/agent-mcp-host.js.map +1 -0
  47. package/dist/agent/agent-mcp-runtime.d.ts +199 -0
  48. package/dist/agent/agent-mcp-runtime.d.ts.map +1 -0
  49. package/dist/agent/agent-mcp-runtime.js +621 -0
  50. package/dist/agent/agent-mcp-runtime.js.map +1 -0
  51. package/dist/agent/agent-model-selection.d.ts +129 -0
  52. package/dist/agent/agent-model-selection.d.ts.map +1 -0
  53. package/dist/agent/agent-model-selection.js +342 -0
  54. package/dist/agent/agent-model-selection.js.map +1 -0
  55. package/dist/agent/agent-read-runtime.d.ts +70 -0
  56. package/dist/agent/agent-read-runtime.d.ts.map +1 -0
  57. package/dist/agent/agent-read-runtime.js +320 -0
  58. package/dist/agent/agent-read-runtime.js.map +1 -0
  59. package/dist/agent/agent-revisions.d.ts +35 -0
  60. package/dist/agent/agent-revisions.d.ts.map +1 -0
  61. package/dist/agent/agent-revisions.js +133 -0
  62. package/dist/agent/agent-revisions.js.map +1 -0
  63. package/dist/agent/agent-scheduler.d.ts +99 -0
  64. package/dist/agent/agent-scheduler.d.ts.map +1 -0
  65. package/dist/agent/agent-scheduler.js +398 -0
  66. package/dist/agent/agent-scheduler.js.map +1 -0
  67. package/dist/bus/command-bus.d.ts +62 -0
  68. package/dist/bus/command-bus.d.ts.map +1 -1
  69. package/dist/bus/command-bus.js +51 -2
  70. package/dist/bus/command-bus.js.map +1 -1
  71. package/dist/bus/event-bus.d.ts +137 -3
  72. package/dist/bus/event-bus.d.ts.map +1 -1
  73. package/dist/bus/event-bus.js +133 -2
  74. package/dist/bus/event-bus.js.map +1 -1
  75. package/dist/bus/saved-dispatcher-binding.d.ts +96 -0
  76. package/dist/bus/saved-dispatcher-binding.d.ts.map +1 -0
  77. package/dist/bus/saved-dispatcher-binding.js +35 -0
  78. package/dist/bus/saved-dispatcher-binding.js.map +1 -0
  79. package/dist/context/bounded-context.d.ts +36 -2
  80. package/dist/context/bounded-context.d.ts.map +1 -1
  81. package/dist/context/bounded-context.js +253 -54
  82. package/dist/context/bounded-context.js.map +1 -1
  83. package/dist/context/tenant-index.d.ts +25 -0
  84. package/dist/context/tenant-index.d.ts.map +1 -1
  85. package/dist/context/tenant-index.js +45 -1
  86. package/dist/context/tenant-index.js.map +1 -1
  87. package/dist/entity/entity.d.ts +82 -3
  88. package/dist/entity/entity.d.ts.map +1 -1
  89. package/dist/entity/entity.js +121 -22
  90. package/dist/entity/entity.js.map +1 -1
  91. package/dist/handler/generated-handler-registry.js +8 -3
  92. package/dist/handler/generated-handler-registry.js.map +1 -1
  93. package/dist/handler/handler-metadata.d.ts +17 -1
  94. package/dist/handler/handler-metadata.d.ts.map +1 -1
  95. package/dist/handler/handler-metadata.js +10 -4
  96. package/dist/handler/handler-metadata.js.map +1 -1
  97. package/dist/index.d.ts +2 -2
  98. package/dist/index.d.ts.map +1 -1
  99. package/dist/index.js +1 -1
  100. package/dist/index.js.map +1 -1
  101. package/dist/repository/commit-fence.d.ts +11 -0
  102. package/dist/repository/commit-fence.d.ts.map +1 -1
  103. package/dist/repository/commit-fence.js +13 -0
  104. package/dist/repository/commit-fence.js.map +1 -1
  105. package/dist/repository/repository.d.ts +222 -13
  106. package/dist/repository/repository.d.ts.map +1 -1
  107. package/dist/repository/repository.js +2323 -123
  108. package/dist/repository/repository.js.map +1 -1
  109. package/dist/runtime/signal-publisher.d.ts +6 -0
  110. package/dist/runtime/signal-publisher.d.ts.map +1 -1
  111. package/dist/runtime/signal-publisher.js +13 -0
  112. package/dist/runtime/signal-publisher.js.map +1 -1
  113. package/dist/runtime/standalone-handler-runtime.d.ts +7 -0
  114. package/dist/runtime/standalone-handler-runtime.d.ts.map +1 -1
  115. package/dist/runtime/standalone-handler-runtime.js +148 -11
  116. package/dist/runtime/standalone-handler-runtime.js.map +1 -1
  117. package/dist/server/server.d.ts +9 -0
  118. package/dist/server/server.d.ts.map +1 -1
  119. package/dist/server/server.js +13 -1
  120. package/dist/server/server.js.map +1 -1
  121. package/dist/testing/index.d.ts +57 -1
  122. package/dist/testing/index.d.ts.map +1 -1
  123. package/dist/testing/index.js +87 -0
  124. package/dist/testing/index.js.map +1 -1
  125. package/dist/tsconfig.tsbuildinfo +1 -1
  126. package/package.json +14 -12
@@ -1,32 +1,165 @@
1
1
  import { type MessageSchema } from "@spine-event-engine/core";
2
2
  import { type Event } from "@spine-event-engine/proto";
3
3
  import type { EventStore } from "@spine-event-engine/storage";
4
+ import { type AgentSavedDispatchPlan } from "@spine-event-engine/proto/generated/spine/server/agent/execution_record_pb.js";
4
5
  import type { ILogLayer } from "loglayer";
5
6
  import type { EventDispatcher } from "./event-dispatcher.js";
7
+ /**
8
+ * Checks for framework System events, including Agent interaction events.
9
+ *
10
+ * @param schema Event message descriptor to classify.
11
+ * @returns Whether the schema is reserved for System events.
12
+ */
13
+ export declare const isSystemEventSchema: (schema: MessageSchema) => boolean;
6
14
  interface EventBusAccess {
7
15
  /**
8
- * Assembles a package-internal bus that owns no event store.
16
+ * Creates a bus without event storage.
9
17
  *
10
- * @param dispatchers the initial dispatchers to register.
11
- * @returns the assembled forgetting bus.
18
+ * @param dispatchers Initial dispatchers to register.
19
+ * @returns The event bus without an event store.
12
20
  */
13
21
  createForgettingBus(dispatchers?: Iterable<EventDispatcher>): EventBus;
22
+ /**
23
+ * Creates a System-event bus with optional storage.
24
+ *
25
+ * @param eventStore Optional event store for the System bus.
26
+ * @param dispatchers Initial dispatchers to register.
27
+ * @returns The System-event bus.
28
+ */
14
29
  createSystemBus(eventStore: EventStore | undefined, dispatchers?: Iterable<EventDispatcher>): EventBus;
30
+ /**
31
+ * Stores and dispatches an accepted event.
32
+ *
33
+ * @param eventBus Event bus receiving this internal operation.
34
+ * @param event Event envelope to prepare or dispatch.
35
+ * @returns A promise for event storage and dispatch.
36
+ */
15
37
  postStored(eventBus: EventBus, event: Event): Promise<void>;
38
+ /**
39
+ * Stores and dispatches an event during follow-up work.
40
+ *
41
+ * @param eventBus Event bus receiving this internal operation.
42
+ * @param event Event envelope to prepare or dispatch.
43
+ * @returns A promise for follow-up event storage and dispatch.
44
+ */
16
45
  postStoredFollowUp(eventBus: EventBus, event: Event): Promise<void>;
46
+ /**
47
+ * Posts an internal event during follow-up work.
48
+ *
49
+ * @param eventBus Event bus receiving this internal operation.
50
+ * @param event Event envelope to prepare or dispatch.
51
+ * @returns A promise for follow-up event dispatch.
52
+ */
17
53
  postFollowUp(eventBus: EventBus, event: Event): Promise<void>;
54
+ /**
55
+ * Prepares a dispatch plan before persisting accepted output.
56
+ *
57
+ * @param eventBus Event bus receiving this internal operation.
58
+ * @param event Event envelope to prepare or dispatch.
59
+ * @returns The exact saved recipient plan.
60
+ */
61
+ prepareSaved(eventBus: EventBus, event: Event): Promise<AgentSavedDispatchPlan>;
62
+ /**
63
+ * Posts a prepared dispatch after its Agent result is saved.
64
+ *
65
+ * @param eventBus Event bus receiving this internal operation.
66
+ * @param event Event envelope to prepare or dispatch.
67
+ * @param plan Persisted recipient plan for this dispatch.
68
+ * @returns A promise for completion of the saved dispatch.
69
+ */
70
+ postSavedFollowUp(eventBus: EventBus, event: Event, plan: AgentSavedDispatchPlan): Promise<void>;
71
+ /**
72
+ * Executes work in the bus-wide exclusive sequence.
73
+ *
74
+ * @typeParam Result Result type returned by the serialized work.
75
+ * @param eventBus Event bus receiving this internal operation.
76
+ * @param work Work to serialize with other bus operations.
77
+ * @returns The result returned by the serialized work.
78
+ */
18
79
  runExclusive<Result>(eventBus: EventBus, work: () => Result | Promise<Result>): Promise<Result>;
80
+ /**
81
+ * Subscribes a callback to one event type.
82
+ *
83
+ * @param eventBus Event bus receiving this internal operation.
84
+ * @param typeUrl Fully qualified event message type URL.
85
+ * @param subscriber Callback to invoke for matching events.
86
+ * @returns A handle for removing the subscription.
87
+ */
19
88
  subscribe(eventBus: EventBus, typeUrl: string, subscriber: EventSubscriber): EventSubscription;
89
+ /**
90
+ * Lists schemas registered for dispatch.
91
+ *
92
+ * @param eventBus Event bus receiving this internal operation.
93
+ * @returns The registered event message schemas.
94
+ */
20
95
  eventSchemas(eventBus: EventBus): readonly MessageSchema[];
96
+ /**
97
+ * Registers event schemas for dispatch.
98
+ *
99
+ * @param eventBus Event bus receiving this internal operation.
100
+ * @param schemas Event message schemas to register.
101
+ */
21
102
  registerSchemas(eventBus: EventBus, schemas: Iterable<MessageSchema>): void;
103
+ /**
104
+ * Removes a dispatcher from the bus.
105
+ *
106
+ * @param eventBus Event bus receiving this internal operation.
107
+ * @param dispatcher Dispatcher to register or inspect.
108
+ */
22
109
  unregister(eventBus: EventBus, dispatcher: EventDispatcher): void;
110
+ /**
111
+ * Finds a registered event schema by type URL.
112
+ *
113
+ * @param eventBus Event bus receiving this internal operation.
114
+ * @param typeUrl Fully qualified event message type URL.
115
+ * @returns The matching schema, if registered.
116
+ */
23
117
  schema(eventBus: EventBus, typeUrl: string): MessageSchema | undefined;
118
+ /**
119
+ * Stops accepting new external work.
120
+ *
121
+ * @param eventBus Event bus receiving this internal operation.
122
+ */
24
123
  beginClose(eventBus: EventBus): void;
124
+ /**
125
+ * Waits for accepted dispatches to settle.
126
+ *
127
+ * @param eventBus Event bus receiving this internal operation.
128
+ * @returns A promise that settles when accepted work drains.
129
+ */
25
130
  drain(eventBus: EventBus): Promise<void>;
131
+ /**
132
+ * Completes the bus shutdown.
133
+ *
134
+ * @param eventBus Event bus receiving this internal operation.
135
+ * @returns A promise that settles when shutdown completes.
136
+ */
26
137
  finishClose(eventBus: EventBus): Promise<void>;
138
+ /**
139
+ * Restores intake after an aborted shutdown.
140
+ *
141
+ * @param eventBus Event bus receiving this internal operation.
142
+ */
27
143
  abortClose(eventBus: EventBus): void;
144
+ /**
145
+ * Returns the number of accepted dispatches still in progress.
146
+ *
147
+ * @param eventBus Event bus receiving this internal operation.
148
+ * @returns The number of accepted dispatches still in progress.
149
+ */
28
150
  acceptedWorkCount(eventBus: EventBus): number;
151
+ /**
152
+ * Attaches the server logger to this bus.
153
+ *
154
+ * @param eventBus Event bus receiving this internal operation.
155
+ * @param logger Logger used for bus diagnostics.
156
+ */
29
157
  installLogger(eventBus: EventBus, logger: ILogLayer): void;
158
+ /**
159
+ * Removes the server logger from this bus.
160
+ *
161
+ * @param eventBus Event bus receiving this internal operation.
162
+ */
30
163
  clearLogger(eventBus: EventBus): void;
31
164
  }
32
165
  /**
@@ -52,6 +185,7 @@ export declare class EventBus {
52
185
  /**
53
186
  * Registers an event dispatcher.
54
187
  *
188
+ * @typeParam Dispatcher Concrete Event dispatcher type returned to the caller.
55
189
  * @param dispatcher the dispatcher to register.
56
190
  * @returns the registered dispatcher.
57
191
  */
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/bus/event-bus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/bus/event-bus.ts"],"names":[],"mappings":"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"}
@@ -12,15 +12,22 @@
12
12
  * the License.
13
13
  */
14
14
  var _a;
15
- import { clone } from "@bufbuild/protobuf";
15
+ import { clone, create } from "@bufbuild/protobuf";
16
16
  import { AnyMessages, Validate } from "@spine-event-engine/core";
17
17
  import { EventSchema } from "@spine-event-engine/proto";
18
+ import * as AgentInteraction from "@spine-event-engine/proto/agent";
19
+ import { eventStoreAccess } from "@spine-event-engine/storage/provider";
20
+ import { AgentSavedDispatchPlanSchema as SavedPlanSchema, } from "@spine-event-engine/proto/generated/spine/server/agent/execution_record_pb.js";
18
21
  import { runtimeAccess, ServerRuntimeStateError, SingleProcessServerRuntime, } from "../runtime/runtime.js";
19
22
  import { EventDispatcherRegistry } from "./event-dispatcher-registry.js";
20
23
  import { emitServerError } from "../server/server-log.js";
24
+ import { SavedDispatcherBindings } from "./saved-dispatcher-binding.js";
21
25
  const storedDispatchers = new WeakMap();
22
26
  const storedFollowUpDispatchers = new WeakMap();
23
27
  const followUpPosters = new WeakMap();
28
+ const savedPreparers = new WeakMap();
29
+ const savedFollowUps = new WeakMap();
30
+ // prettier-ignore
24
31
  const exclusiveWorkers = new WeakMap();
25
32
  const subscriberRegistrars = new WeakMap();
26
33
  const eventSchemaLists = new WeakMap();
@@ -36,6 +43,24 @@ const forgettingBus = Symbol("forgetting-bus");
36
43
  const forgettingBuses = new WeakSet();
37
44
  const eventBusRoles = new WeakMap();
38
45
  const eventBusLoggers = new WeakMap();
46
+ const agentSystemTypes = new Set([
47
+ AgentInteraction.AgentAiOperationStartedSchema.typeName,
48
+ AgentInteraction.AgentModelAttemptStartedSchema.typeName,
49
+ AgentInteraction.AgentModelAttemptFinishedSchema.typeName,
50
+ AgentInteraction.AgentAiResultAdmittedSchema.typeName,
51
+ AgentInteraction.AgentAiOperationFailedSchema.typeName,
52
+ AgentInteraction.AgentToolCallStartedSchema.typeName,
53
+ AgentInteraction.AgentToolCallFinishedSchema.typeName,
54
+ AgentInteraction.AgentModelSelectionChangedSchema.typeName,
55
+ AgentInteraction.AgentInvocationTerminatedSchema.typeName,
56
+ ]);
57
+ /**
58
+ * Checks for framework System events, including Agent interaction events.
59
+ *
60
+ * @param schema Event message descriptor to classify.
61
+ * @returns Whether the schema is reserved for System events.
62
+ */
63
+ export const isSystemEventSchema = (schema) => schema.typeName.startsWith("spine.system.") || agentSystemTypes.has(schema.typeName);
39
64
  /**
40
65
  * Small single-process multicast event bus.
41
66
  *
@@ -69,6 +94,8 @@ export class EventBus {
69
94
  storedDispatchers.set(this, (event) => this.#postStored(event));
70
95
  storedFollowUpDispatchers.set(this, (event) => this.#postStoredFollowUp(event));
71
96
  followUpPosters.set(this, (event) => this.#postFollowUp(event));
97
+ savedPreparers.set(this, (event) => this.#prepareSaved(event));
98
+ savedFollowUps.set(this, (event, plan) => this.#postSavedFollowUp(event, plan));
72
99
  exclusiveWorkers.set(this, (work) => this.#runExclusive(work));
73
100
  subscriberRegistrars.set(this, (typeUrl, subscriber) => this.#subscribe(typeUrl, subscriber));
74
101
  eventSchemaLists.set(this, () => this.#registry.schemas());
@@ -95,6 +122,7 @@ export class EventBus {
95
122
  /**
96
123
  * Registers an event dispatcher.
97
124
  *
125
+ * @typeParam Dispatcher Concrete Event dispatcher type returned to the caller.
98
126
  * @param dispatcher the dispatcher to register.
99
127
  * @returns the registered dispatcher.
100
128
  */
@@ -210,6 +238,63 @@ export class EventBus {
210
238
  this.#acceptedWorkCount++;
211
239
  return this.#started.then(() => runtimeAccess.enqueueFollowUp(this.#runtime, () => this.#dispatch(accepted)));
212
240
  }
241
+ async #prepareSaved(event) {
242
+ const typeUrl = event.message?.typeUrl;
243
+ if (!typeUrl)
244
+ throw new Error("Saved Agent Event requires a registered message type.");
245
+ this.#validate(event, typeUrl);
246
+ const targets = [];
247
+ for (const dispatcher of this.#registry.find(typeUrl, event.context?.external === true)) {
248
+ const binding = SavedDispatcherBindings.forEvent(dispatcher);
249
+ if (binding === undefined)
250
+ throw new Error("Saved Agent Event matches a dispatcher without durable metadata.");
251
+ targets.push(await binding.prepare(clone(EventSchema, event)));
252
+ }
253
+ return create(SavedPlanSchema, { targets });
254
+ }
255
+ #postSavedFollowUp(event, plan) {
256
+ const accepted = clone(EventSchema, event);
257
+ const frozen = clone(SavedPlanSchema, plan);
258
+ if (this.#intakeState === "closed")
259
+ return Promise.reject(new ServerRuntimeStateError("enqueue", "closed"));
260
+ this.#acceptedWorkCount++;
261
+ return this.#started.then(() => runtimeAccess.enqueueFollowUp(this.#runtime, () => this.#dispatchSaved(accepted, frozen)));
262
+ }
263
+ async #dispatchSaved(event, plan) {
264
+ const typeUrl = event.message?.typeUrl;
265
+ if (!typeUrl)
266
+ throw new Error("Saved Agent Event requires a registered message type.");
267
+ this.#validate(event, typeUrl);
268
+ const dispatchers = this.#registry.find(typeUrl, event.context?.external === true);
269
+ const deliveries = await this.#bindSaved(event, plan, dispatchers);
270
+ const store = this.#eventStore;
271
+ if (store === undefined)
272
+ throw new Error("Saved Agent Event requires an EventStore.");
273
+ await eventStoreAccess.appendOrVerifyOriginal(store, event);
274
+ for (const deliver of deliveries)
275
+ await deliver();
276
+ this.#notify(event);
277
+ }
278
+ async #bindSaved(event, plan, dispatchers) {
279
+ if (dispatchers.length !== plan.targets.length)
280
+ throw new Error("Saved Agent Event dispatcher set changed before delivery.");
281
+ const remaining = new Set(dispatchers);
282
+ const deliveries = [];
283
+ for (const target of plan.targets) {
284
+ const matches = [...remaining].filter((dispatcher) => SavedDispatcherBindings.forEvent(dispatcher)?.matches(target) === true);
285
+ if (matches.length !== 1)
286
+ throw new Error("Saved Agent Event dispatcher binding is missing or ambiguous.");
287
+ const dispatcher = matches[0];
288
+ if (dispatcher === undefined)
289
+ throw new Error("Saved Agent Event dispatcher disappeared.");
290
+ remaining.delete(dispatcher);
291
+ const binding = SavedDispatcherBindings.forEvent(dispatcher);
292
+ if (binding === undefined)
293
+ throw new Error("Saved Agent Event metadata disappeared.");
294
+ deliveries.push(await binding.bind(clone(EventSchema, event), target));
295
+ }
296
+ return deliveries;
297
+ }
213
298
  async #dispatchStored(event) {
214
299
  const typeUrl = event.message?.typeUrl;
215
300
  if (typeUrl === undefined || typeUrl === "") {
@@ -244,6 +329,13 @@ export class EventBus {
244
329
  }
245
330
  Validate.check(schema, message);
246
331
  }
332
+ /**
333
+ * Executes one task after prior accepted bus work settles.
334
+ *
335
+ * @typeParam Result Value returned by the task.
336
+ * @param work Task to serialize with other bus work.
337
+ * @returns The task result after dispatch ordering is respected.
338
+ */
247
339
  #runExclusive(work) {
248
340
  let result;
249
341
  this.#acceptedWorkCount++;
@@ -367,6 +459,13 @@ export class EventBus {
367
459
  }
368
460
  _a = EventBus;
369
461
  const EventBusRoles = Object.freeze({
462
+ /**
463
+ * Creates a bus restricted to System event schemas.
464
+ *
465
+ * @param eventStore Optional store for published System events.
466
+ * @param dispatchers Initial System event dispatchers.
467
+ * @returns The configured System event bus.
468
+ */
370
469
  createSystem(eventStore, dispatchers) {
371
470
  const eventBus = new EventBus((eventStore ?? forgettingBus), []);
372
471
  eventBusRoles.set(eventBus, "system");
@@ -376,13 +475,25 @@ const EventBusRoles = Object.freeze({
376
475
  eventBus.register(dispatcher);
377
476
  return eventBus;
378
477
  },
478
+ /**
479
+ * Validates every schema accepted by a dispatcher against the bus role.
480
+ *
481
+ * @param role Domain or System role of the bus.
482
+ * @param dispatcher Dispatcher whose schemas are checked.
483
+ */
379
484
  validateDispatcher(role, dispatcher) {
380
485
  for (const schema of dispatcher.messageSchemas())
381
486
  EventBusRoles.validateSchema(role, schema);
382
487
  },
488
+ /**
489
+ * Validates a message schema against the bus role.
490
+ *
491
+ * @param role Domain or System role of the bus.
492
+ * @param schema Event message descriptor to check.
493
+ */
383
494
  validateSchema(role, schema) {
384
495
  const typeUrl = `type.${schema.typeName}`;
385
- const systemSchema = typeUrl.startsWith("type.spine.system.");
496
+ const systemSchema = isSystemEventSchema(schema);
386
497
  if (role === "domain" && systemSchema)
387
498
  throw new Error(`Domain EventBus rejects system event schema "${typeUrl}".`);
388
499
  if (role === "system" && !systemSchema)
@@ -436,6 +547,26 @@ export const eventBusAccess = Object.freeze({
436
547
  }
437
548
  return postFollowUp(event);
438
549
  },
550
+ prepareSaved(eventBus, event) {
551
+ const prepare = savedPreparers.get(eventBus);
552
+ if (prepare === undefined)
553
+ throw new TypeError("Saved Event preparation requires an EventBus.");
554
+ return prepare(event);
555
+ },
556
+ postSavedFollowUp(eventBus, event, plan) {
557
+ const post = savedFollowUps.get(eventBus);
558
+ if (post === undefined)
559
+ throw new TypeError("Saved Event delivery requires an EventBus.");
560
+ return post(event, plan);
561
+ },
562
+ /**
563
+ * Executes work in the bus-wide exclusive sequence.
564
+ *
565
+ * @typeParam Result Value returned by serialized work.
566
+ * @param eventBus Bus providing the exclusive sequence.
567
+ * @param work Task to serialize with other bus work.
568
+ * @returns The result returned by the task.
569
+ */
439
570
  runExclusive(eventBus, work) {
440
571
  const runExclusive = exclusiveWorkers.get(eventBus);
441
572
  if (runExclusive === undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/bus/event-bus.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../../src/bus/event-bus.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import type { Command, Event } from "@spine-event-engine/proto";
2
+ import type { AgentSavedDispatchTarget } from "@spine-event-engine/proto/generated/spine/server/agent/execution_record_pb.js";
3
+ import type { CommandDispatcher } from "./command-dispatcher.js";
4
+ import type { EventDispatcher } from "./event-dispatcher.js";
5
+ /**
6
+ * Prepares and rebinds one normal Event dispatcher without repeating recipient routing.
7
+ */
8
+ export interface SavedEventBinding {
9
+ /**
10
+ * Prepares the exact recipient for saved dispatch.
11
+ *
12
+ * @param event Event envelope to prepare or dispatch.
13
+ * @returns The exact saved recipient target.
14
+ */
15
+ prepare(event: Event): Promise<AgentSavedDispatchTarget>;
16
+ /**
17
+ * Checks whether a saved recipient still matches this dispatcher.
18
+ *
19
+ * @param target Persisted recipient target to compare or bind.
20
+ * @returns Whether the target still matches this dispatcher.
21
+ */
22
+ matches(target: AgentSavedDispatchTarget): boolean;
23
+ /**
24
+ * Binds a saved envelope to its prepared recipient.
25
+ *
26
+ * @param event Event envelope to prepare or dispatch.
27
+ * @param target Persisted recipient target to compare or bind.
28
+ * @returns A callback that dispatches to the prepared recipient.
29
+ */
30
+ bind(event: Event, target: AgentSavedDispatchTarget): Promise<() => Promise<void>>;
31
+ }
32
+ /**
33
+ * Prepares and rebinds one normal Command dispatcher without repeating routing.
34
+ */
35
+ export interface SavedCommandBinding {
36
+ /**
37
+ * Prepares the exact recipient for saved dispatch.
38
+ *
39
+ * @param command Command envelope to prepare or dispatch.
40
+ * @returns The exact saved recipient target.
41
+ */
42
+ prepare(command: Command): Promise<AgentSavedDispatchTarget>;
43
+ /**
44
+ * Checks whether a saved recipient still matches this dispatcher.
45
+ *
46
+ * @param target Persisted recipient target to compare or bind.
47
+ * @returns Whether the target still matches this dispatcher.
48
+ */
49
+ matches(target: AgentSavedDispatchTarget): boolean;
50
+ /**
51
+ * Binds a saved envelope to its prepared recipient.
52
+ *
53
+ * @param command Command envelope to prepare or dispatch.
54
+ * @param target Persisted recipient target to compare or bind.
55
+ * @returns A callback that dispatches to the prepared recipient.
56
+ */
57
+ bind(command: Command, target: AgentSavedDispatchTarget): Promise<() => Promise<void>>;
58
+ }
59
+ interface SavedDispatcherBindingAccess {
60
+ /**
61
+ * Registers an event dispatcher with its saved-dispatch binding.
62
+ *
63
+ * @param dispatcher Dispatcher to register or inspect.
64
+ * @param binding Saved-dispatch binding for this dispatcher.
65
+ * @returns The dispatcher with its binding recorded.
66
+ */
67
+ event(dispatcher: EventDispatcher, binding: SavedEventBinding): EventDispatcher;
68
+ /**
69
+ * Registers a command dispatcher with its saved-dispatch binding.
70
+ *
71
+ * @param dispatcher Dispatcher to register or inspect.
72
+ * @param binding Saved-dispatch binding for this dispatcher.
73
+ * @returns The dispatcher with its binding recorded.
74
+ */
75
+ command(dispatcher: CommandDispatcher, binding: SavedCommandBinding): CommandDispatcher;
76
+ /**
77
+ * Finds the saved-dispatch binding for an event dispatcher.
78
+ *
79
+ * @param dispatcher Dispatcher to register or inspect.
80
+ * @returns The registered event binding, if present.
81
+ */
82
+ forEvent(dispatcher: EventDispatcher): SavedEventBinding | undefined;
83
+ /**
84
+ * Finds the saved-dispatch binding for a command dispatcher.
85
+ *
86
+ * @param dispatcher Dispatcher to register or inspect.
87
+ * @returns The registered command binding, if present.
88
+ */
89
+ forCommand(dispatcher: CommandDispatcher): SavedCommandBinding | undefined;
90
+ }
91
+ /**
92
+ * Framework-only metadata adapters for saved Agent output acceptance.
93
+ */
94
+ export declare const SavedDispatcherBindings: SavedDispatcherBindingAccess;
95
+ export {};
96
+ //# sourceMappingURL=saved-dispatcher-binding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saved-dispatcher-binding.d.ts","sourceRoot":"","sources":["../../src/bus/saved-dispatcher-binding.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,2BAA2B,CAAC;AAEhE,OAAO,KAAK,EACV,wBAAwB,EACzB,MAAM,+EAA+E,CAAC;AACvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAE7D;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;;;;OAKG;IACH,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAEzD;;;;;OAKG;IACH,OAAO,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC;IAEnD;;;;;;OAMG;IACH,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;CACpF;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAE7D;;;;;OAKG;IACH,OAAO,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC;IAEnD;;;;;;OAMG;IACH,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;CACxF;AAKD,UAAU,4BAA4B;IACpC;;;;;;OAMG;IACH,KAAK,CAAC,UAAU,EAAE,eAAe,EAAE,OAAO,EAAE,iBAAiB,GAAG,eAAe,CAAC;IAEhF;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,EAAE,iBAAiB,EAAE,OAAO,EAAE,mBAAmB,GAAG,iBAAiB,CAAC;IAExF;;;;;OAKG;IACH,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,iBAAiB,GAAG,SAAS,CAAC;IAErE;;;;;OAKG;IACH,UAAU,CAAC,UAAU,EAAE,iBAAiB,GAAG,mBAAmB,GAAG,SAAS,CAAC;CAC5E;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,EAAE,4BAepC,CAAC"}
@@ -0,0 +1,35 @@
1
+ /*
2
+ * Copyright 2026, CodeMatters. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5
+ * in compliance with the License. You may obtain a copy of the License at
6
+ *
7
+ * https://www.apache.org/licenses/LICENSE-2.0
8
+ *
9
+ * Unless required by applicable law or agreed to in writing, software distributed under the License
10
+ * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
11
+ * or implied. See the License for the specific language governing permissions and limitations under
12
+ * the License.
13
+ */
14
+ const eventBindings = new WeakMap();
15
+ const commandBindings = new WeakMap();
16
+ /**
17
+ * Framework-only metadata adapters for saved Agent output acceptance.
18
+ */
19
+ export const SavedDispatcherBindings = Object.freeze({
20
+ event(dispatcher, binding) {
21
+ eventBindings.set(dispatcher, binding);
22
+ return dispatcher;
23
+ },
24
+ command(dispatcher, binding) {
25
+ commandBindings.set(dispatcher, binding);
26
+ return dispatcher;
27
+ },
28
+ forEvent(dispatcher) {
29
+ return eventBindings.get(dispatcher);
30
+ },
31
+ forCommand(dispatcher) {
32
+ return commandBindings.get(dispatcher);
33
+ },
34
+ });
35
+ //# sourceMappingURL=saved-dispatcher-binding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"saved-dispatcher-binding.js","sourceRoot":"","sources":["../../src/bus/saved-dispatcher-binding.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAsEH,MAAM,aAAa,GAAG,IAAI,OAAO,EAAsC,CAAC;AACxE,MAAM,eAAe,GAAG,IAAI,OAAO,EAA0C,CAAC;AAsC9E;;GAEG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAiC,MAAM,CAAC,MAAM,CAAC;IACjF,KAAK,CAAC,UAA2B,EAAE,OAA0B;QAC3D,aAAa,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACvC,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,CAAC,UAA6B,EAAE,OAA4B;QACjE,eAAe,CAAC,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACzC,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,QAAQ,CAAC,UAA2B;QAClC,OAAO,aAAa,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACvC,CAAC;IACD,UAAU,CAAC,UAA6B;QACtC,OAAO,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACzC,CAAC;CACF,CAAC,CAAC"}