@xtrape/capsule-contracts-node 0.3.0 → 0.4.0

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 CHANGED
@@ -404,3 +404,27 @@ contract validation safety guidance.
404
404
 
405
405
  Apache-2.0. "Xtrape", "Xtrape Capsule", and "Opstage" are trademarks of their
406
406
  respective owners; the open-source license does not grant trademark rights.
407
+
408
+ ## v0.4 Capsule Bus Experimental
409
+
410
+ `v0.4` adds an experimental Capsule Bus contract surface for CE's built-in SQLite-backed in-process event-to-command router. It is intentionally small, single-node, and disabled by default; it is **not** a standalone Bus Server, external broker (NATS / RabbitMQ / Redis Streams / Kafka), workflow DSL, or service mesh. No fan-out (`maxCommandsPerEvent`) in v0.4 — one matched route produces at most one `ACTION_EXECUTE` command.
411
+
412
+ Key exports:
413
+
414
+ - `BusEventEnvelopeSchema`
415
+ - `PublishBusEventRequestSchema`
416
+ - `PublishBusEventResponseSchema`
417
+ - `BusRouteRuleSchema`
418
+ - `CreateBusRouteRuleRequestSchema`
419
+
420
+ Minimal event payload:
421
+
422
+ ```ts
423
+ BusEventEnvelopeSchema.parse({
424
+ eventType: "demo.item.created",
425
+ sourceServiceCode: "demo-worker",
426
+ payload: { itemId: "item-1" },
427
+ });
428
+ ```
429
+
430
+ All schemas include or default `experimental: "v0.4-experimental"`; consumers should treat the wire surface as unstable until v1.0.
package/dist/index.cjs CHANGED
@@ -36,6 +36,16 @@ __export(index_exports, {
36
36
  AuditActorType: () => AuditActorType,
37
37
  AuditEventSchema: () => AuditEventSchema,
38
38
  AuditResult: () => AuditResult,
39
+ BusCommandRequestSchema: () => BusCommandRequestSchema,
40
+ BusErrorCode: () => BusErrorCode,
41
+ BusEventEnvelopeSchema: () => BusEventEnvelopeSchema,
42
+ BusEventRecordSchema: () => BusEventRecordSchema,
43
+ BusRouteRuleSchema: () => BusRouteRuleSchema,
44
+ BusRouteStatus: () => BusRouteStatus,
45
+ BusRouteStatusSchema: () => BusRouteStatusSchema,
46
+ BusRoutedCommandSchema: () => BusRoutedCommandSchema,
47
+ BusRoutingRuleSchema: () => BusRoutingRuleSchema,
48
+ CapsuleBusExperimentalSchema: () => CapsuleBusExperimentalSchema,
39
49
  CapsuleManifestSchema: () => CapsuleManifestSchema,
40
50
  CapsuleServiceDetailSchema: () => CapsuleServiceDetailSchema,
41
51
  CapsuleServiceSchema: () => CapsuleServiceSchema,
@@ -50,6 +60,7 @@ __export(index_exports, {
50
60
  ConfigItemInputSchema: () => ConfigItemInputSchema,
51
61
  ConfigItemSchema: () => ConfigItemSchema,
52
62
  CreateActionCommandRequestSchema: () => CreateActionCommandRequestSchema,
63
+ CreateBusRouteRuleRequestSchema: () => CreateBusRouteRuleRequestSchema,
53
64
  CreateRegistrationTokenRequestSchema: () => CreateRegistrationTokenRequestSchema,
54
65
  CreateRegistrationTokenResponseSchema: () => CreateRegistrationTokenResponseSchema,
55
66
  DangerLevel: () => DangerLevel,
@@ -63,6 +74,8 @@ __export(index_exports, {
63
74
  HealthStatusSchema: () => HealthStatusSchema,
64
75
  HttpError: () => HttpError,
65
76
  ListQueryBase: () => ListQueryBase,
77
+ PublishBusEventRequestSchema: () => PublishBusEventRequestSchema,
78
+ PublishBusEventResponseSchema: () => PublishBusEventResponseSchema,
66
79
  RegisterAgentRequestSchema: () => RegisterAgentRequestSchema,
67
80
  RegisterAgentResponseSchema: () => RegisterAgentResponseSchema,
68
81
  RegistrationTokenSchema: () => RegistrationTokenSchema,
@@ -82,14 +95,21 @@ __export(index_exports, {
82
95
  actionPrepareResultSchema: () => actionPrepareResultSchema,
83
96
  adminLoginRequestSchema: () => adminLoginRequestSchema,
84
97
  agentHeartbeatRequestSchema: () => agentHeartbeatRequestSchema,
98
+ busCommandRequestSchema: () => busCommandRequestSchema,
99
+ busEventEnvelopeSchema: () => busEventEnvelopeSchema,
100
+ busRouteRuleSchema: () => busRouteRuleSchema,
101
+ busRoutingRuleSchema: () => busRoutingRuleSchema,
85
102
  configItemInputSchema: () => configItemInputSchema,
86
103
  createActionCommandRequestSchema: () => createActionCommandRequestSchema,
104
+ createBusRouteRuleRequestSchema: () => createBusRouteRuleRequestSchema,
87
105
  createRegistrationTokenRequestSchema: () => createRegistrationTokenRequestSchema,
88
106
  createUserRequestSchema: () => createUserRequestSchema,
89
107
  eventMetadataSchema: () => eventMetadataSchema,
90
108
  healthReportInputSchema: () => healthReportInputSchema,
91
109
  paginate: () => paginate,
92
110
  parseSort: () => parseSort,
111
+ publishBusEventRequestSchema: () => publishBusEventRequestSchema,
112
+ publishBusEventResponseSchema: () => publishBusEventResponseSchema,
93
113
  registerAgentRequestSchema: () => registerAgentRequestSchema,
94
114
  reportCommandResultRequestSchema: () => reportCommandResultRequestSchema,
95
115
  reportedServiceSchema: () => reportedServiceSchema,
@@ -179,6 +199,87 @@ var ActionPrepareResultSchema = import_zod.z.object({
179
199
  currentState: AnyJson.optional()
180
200
  });
181
201
  var actionPrepareResultSchema = ActionPrepareResultSchema;
202
+ var CapsuleBusExperimentalSchema = import_zod.z.literal("v0.4-experimental");
203
+ var BusRouteStatus = ["ENABLED", "DISABLED", "DRY_RUN"];
204
+ var BusRouteStatusSchema = import_zod.z.enum(BusRouteStatus);
205
+ var BusEventEnvelopeSchema = import_zod.z.object({
206
+ id: import_zod.z.string().startsWith("bev_").optional(),
207
+ experimental: CapsuleBusExperimentalSchema.default("v0.4-experimental"),
208
+ eventType: import_zod.z.string().min(1).max(160),
209
+ sourceServiceCode: import_zod.z.string().min(1).max(80),
210
+ sourceServiceId: import_zod.z.string().startsWith("svc_").optional(),
211
+ occurredAt: import_zod.z.string().datetime().optional(),
212
+ correlationId: import_zod.z.string().min(1).max(160).optional(),
213
+ causationId: import_zod.z.string().min(1).max(160).optional(),
214
+ payload: AnyJson.default({}).optional(),
215
+ metadata: AnyJson.default({}).optional()
216
+ });
217
+ var PublishBusEventRequestSchema = BusEventEnvelopeSchema.omit({ id: true }).extend({
218
+ routePolicy: import_zod.z.object({ dryRun: import_zod.z.boolean().optional() }).optional()
219
+ });
220
+ var BusRouteRuleSchema = import_zod.z.object({
221
+ id: import_zod.z.string().startsWith("brt_").optional(),
222
+ name: import_zod.z.string().min(1).max(160),
223
+ description: import_zod.z.string().max(1e3).optional(),
224
+ status: BusRouteStatusSchema.optional().default("DISABLED"),
225
+ match: import_zod.z.object({
226
+ eventType: import_zod.z.string().min(1).max(160),
227
+ sourceServiceCode: import_zod.z.string().min(1).max(80).optional()
228
+ }),
229
+ target: import_zod.z.object({
230
+ serviceCode: import_zod.z.string().min(1).max(80),
231
+ actionName: import_zod.z.string().min(1).max(128)
232
+ }),
233
+ inputMapping: AnyJson.default({}).optional(),
234
+ metadata: AnyJson.default({}).optional()
235
+ });
236
+ var CreateBusRouteRuleRequestSchema = BusRouteRuleSchema.omit({ id: true });
237
+ var BusCommandRequestSchema = import_zod.z.object({
238
+ commandId: import_zod.z.string().startsWith("cmd_").optional(),
239
+ commandType: import_zod.z.literal("ACTION_EXECUTE").default("ACTION_EXECUTE"),
240
+ targetService: import_zod.z.string().min(1).max(80),
241
+ actionName: import_zod.z.string().min(1).max(128),
242
+ sourceEventId: import_zod.z.string().startsWith("bev_").optional(),
243
+ payload: AnyJson.default({}).optional(),
244
+ metadata: import_zod.z.object({
245
+ routingRuleId: import_zod.z.string().startsWith("brt_").optional(),
246
+ correlationId: import_zod.z.string().min(1).max(160).optional()
247
+ }).catchall(import_zod.z.any()).optional()
248
+ });
249
+ var busCommandRequestSchema = BusCommandRequestSchema;
250
+ var BusRoutingRuleSchema = BusRouteRuleSchema;
251
+ var busRoutingRuleSchema = BusRoutingRuleSchema;
252
+ var BusRoutedCommandSchema = import_zod.z.object({
253
+ routeId: import_zod.z.string().startsWith("brt_"),
254
+ commandId: import_zod.z.string().startsWith("cmd_").optional(),
255
+ dryRun: import_zod.z.boolean(),
256
+ targetServiceCode: import_zod.z.string(),
257
+ actionName: import_zod.z.string(),
258
+ status: import_zod.z.enum(["CREATED", "DRY_RUN", "SKIPPED", "FAILED"]),
259
+ errorCode: import_zod.z.string().optional(),
260
+ errorMessage: import_zod.z.string().optional()
261
+ });
262
+ var PublishBusEventResponseSchema = import_zod.z.object({
263
+ eventId: import_zod.z.string().startsWith("bev_"),
264
+ experimental: CapsuleBusExperimentalSchema,
265
+ routedCommands: import_zod.z.array(BusRoutedCommandSchema)
266
+ });
267
+ var BusEventRecordSchema = BusEventEnvelopeSchema.extend({
268
+ id: import_zod.z.string().startsWith("bev_"),
269
+ agentId: import_zod.z.string().startsWith("agt_"),
270
+ acceptedAt: import_zod.z.string(),
271
+ routeCount: import_zod.z.number().int()
272
+ });
273
+ var BusErrorCode = {
274
+ CAPSULE_BUS_DISABLED: "CAPSULE_BUS_DISABLED",
275
+ BUS_RATE_LIMITED: "BUS_RATE_LIMITED",
276
+ BUS_DEPTH_EXCEEDED: "BUS_DEPTH_EXCEEDED"
277
+ };
278
+ var publishBusEventRequestSchema = PublishBusEventRequestSchema;
279
+ var publishBusEventResponseSchema = PublishBusEventResponseSchema;
280
+ var busEventEnvelopeSchema = BusEventEnvelopeSchema;
281
+ var busRouteRuleSchema = BusRouteRuleSchema;
282
+ var createBusRouteRuleRequestSchema = CreateBusRouteRuleRequestSchema;
182
283
  var CreateActionCommandRequestSchema = import_zod.z.object({ payload: AnyJson.optional(), confirmation: import_zod.z.boolean().optional() });
183
284
  var createActionCommandRequestSchema = CreateActionCommandRequestSchema;
184
285
  var CommandTypeSchema = import_zod.z.enum(["ACTION_PREPARE", "ACTION_EXECUTE"]);
@@ -250,6 +351,16 @@ var ErrorCode = {
250
351
  AuditActorType,
251
352
  AuditEventSchema,
252
353
  AuditResult,
354
+ BusCommandRequestSchema,
355
+ BusErrorCode,
356
+ BusEventEnvelopeSchema,
357
+ BusEventRecordSchema,
358
+ BusRouteRuleSchema,
359
+ BusRouteStatus,
360
+ BusRouteStatusSchema,
361
+ BusRoutedCommandSchema,
362
+ BusRoutingRuleSchema,
363
+ CapsuleBusExperimentalSchema,
253
364
  CapsuleManifestSchema,
254
365
  CapsuleServiceDetailSchema,
255
366
  CapsuleServiceSchema,
@@ -264,6 +375,7 @@ var ErrorCode = {
264
375
  ConfigItemInputSchema,
265
376
  ConfigItemSchema,
266
377
  CreateActionCommandRequestSchema,
378
+ CreateBusRouteRuleRequestSchema,
267
379
  CreateRegistrationTokenRequestSchema,
268
380
  CreateRegistrationTokenResponseSchema,
269
381
  DangerLevel,
@@ -277,6 +389,8 @@ var ErrorCode = {
277
389
  HealthStatusSchema,
278
390
  HttpError,
279
391
  ListQueryBase,
392
+ PublishBusEventRequestSchema,
393
+ PublishBusEventResponseSchema,
280
394
  RegisterAgentRequestSchema,
281
395
  RegisterAgentResponseSchema,
282
396
  RegistrationTokenSchema,
@@ -296,14 +410,21 @@ var ErrorCode = {
296
410
  actionPrepareResultSchema,
297
411
  adminLoginRequestSchema,
298
412
  agentHeartbeatRequestSchema,
413
+ busCommandRequestSchema,
414
+ busEventEnvelopeSchema,
415
+ busRouteRuleSchema,
416
+ busRoutingRuleSchema,
299
417
  configItemInputSchema,
300
418
  createActionCommandRequestSchema,
419
+ createBusRouteRuleRequestSchema,
301
420
  createRegistrationTokenRequestSchema,
302
421
  createUserRequestSchema,
303
422
  eventMetadataSchema,
304
423
  healthReportInputSchema,
305
424
  paginate,
306
425
  parseSort,
426
+ publishBusEventRequestSchema,
427
+ publishBusEventResponseSchema,
307
428
  registerAgentRequestSchema,
308
429
  reportCommandResultRequestSchema,
309
430
  reportedServiceSchema,