@xtrape/capsule-contracts-node 0.2.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
@@ -41,7 +41,7 @@ The package currently exports:
41
41
  - Zod itself as `z` for consumers that want one compatible Zod instance.
42
42
  - Status enum arrays and types: `AgentStatus`, `CapsuleServiceStatus`,
43
43
  `HealthStatus`, `CommandStatus`, `DangerLevel`, `AuditActorType`,
44
- `AuditResult`, `TokenStatus`.
44
+ `AuditResult`, `TokenStatus`, `AgentMode`.
45
45
  - Admin schemas: users, sessions, registration token requests/responses.
46
46
  - Agent schemas: registration, heartbeat, service report, command result.
47
47
  - Capsule Service schemas: manifest, health, config, action, service detail.
@@ -58,7 +58,7 @@ import { RegisterAgentRequestSchema } from "@xtrape/capsule-contracts-node";
58
58
  const request = RegisterAgentRequestSchema.parse(input);
59
59
 
60
60
  // request.registrationToken starts with opstage_reg_
61
- // request.agent.mode is embedded
61
+ // request.agent.mode is embedded or ophub
62
62
  ```
63
63
 
64
64
  Lowercase aliases are also exported for backend compatibility:
@@ -69,6 +69,52 @@ import { registerAgentRequestSchema } from "@xtrape/capsule-contracts-node";
69
69
  const request = registerAgentRequestSchema.parse(input);
70
70
  ```
71
71
 
72
+ ## v0.3 OpHub and Metadata
73
+
74
+ v0.3 adds the experimental `ophub` Agent mode. `sidecar` and `base-image`
75
+ remain OpHub deployment forms, but the wire contract should use
76
+ `mode: "ophub"` for an OpHub that represents one or more local Capsule
77
+ Services.
78
+
79
+ ```ts
80
+ import { RegisterAgentRequestSchema, ServiceReportRequestSchema } from "@xtrape/capsule-contracts-node";
81
+
82
+ RegisterAgentRequestSchema.parse({
83
+ registrationToken: "opstage_reg_...",
84
+ agent: {
85
+ code: "ophub-a",
86
+ name: "OpHub A",
87
+ mode: "ophub",
88
+ runtime: "go",
89
+ },
90
+ });
91
+
92
+ ServiceReportRequestSchema.parse({
93
+ services: [
94
+ {
95
+ code: "svc-one",
96
+ name: "Service One",
97
+ version: "0.3.0",
98
+ runtime: "nodejs",
99
+ manifest: {
100
+ kind: "CapsuleService",
101
+ code: "svc-one",
102
+ name: "Service One",
103
+ version: "0.3.0",
104
+ runtime: "nodejs",
105
+ agentMode: "ophub",
106
+ capabilities: [{ name: "inventory.read", label: "Inventory read" }],
107
+ events: [{ name: "inventory.changed", direction: "publish", designOnly: true }],
108
+ },
109
+ },
110
+ ],
111
+ });
112
+ ```
113
+
114
+ Capability metadata is implemented as declarative service metadata. Event
115
+ metadata is intentionally a foundation for future Capsule Bus work; `designOnly`
116
+ events must not be treated as a working event bus.
117
+
72
118
  ## Validate Service Report
73
119
 
74
120
  ```ts
@@ -358,3 +404,27 @@ contract validation safety guidance.
358
404
 
359
405
  Apache-2.0. "Xtrape", "Xtrape Capsule", and "Opstage" are trademarks of their
360
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
@@ -27,6 +27,8 @@ __export(index_exports, {
27
27
  AdminSessionSchema: () => AdminSessionSchema,
28
28
  AgentHeartbeatRequestSchema: () => AgentHeartbeatRequestSchema,
29
29
  AgentHeartbeatResponseSchema: () => AgentHeartbeatResponseSchema,
30
+ AgentMode: () => AgentMode,
31
+ AgentModeSchema: () => AgentModeSchema,
30
32
  AgentSchema: () => AgentSchema,
31
33
  AgentStatus: () => AgentStatus,
32
34
  AgentStatusSchema: () => AgentStatusSchema,
@@ -34,6 +36,16 @@ __export(index_exports, {
34
36
  AuditActorType: () => AuditActorType,
35
37
  AuditEventSchema: () => AuditEventSchema,
36
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,
37
49
  CapsuleManifestSchema: () => CapsuleManifestSchema,
38
50
  CapsuleServiceDetailSchema: () => CapsuleServiceDetailSchema,
39
51
  CapsuleServiceSchema: () => CapsuleServiceSchema,
@@ -48,24 +60,31 @@ __export(index_exports, {
48
60
  ConfigItemInputSchema: () => ConfigItemInputSchema,
49
61
  ConfigItemSchema: () => ConfigItemSchema,
50
62
  CreateActionCommandRequestSchema: () => CreateActionCommandRequestSchema,
63
+ CreateBusRouteRuleRequestSchema: () => CreateBusRouteRuleRequestSchema,
51
64
  CreateRegistrationTokenRequestSchema: () => CreateRegistrationTokenRequestSchema,
52
65
  CreateRegistrationTokenResponseSchema: () => CreateRegistrationTokenResponseSchema,
53
66
  DangerLevel: () => DangerLevel,
54
67
  DangerLevelSchema: () => DangerLevelSchema,
55
68
  DashboardSummarySchema: () => DashboardSummarySchema,
56
69
  ErrorCode: () => ErrorCode,
70
+ EventMetadataSchema: () => EventMetadataSchema,
57
71
  HealthReportInputSchema: () => HealthReportInputSchema,
58
72
  HealthReportSchema: () => HealthReportSchema,
59
73
  HealthStatus: () => HealthStatus,
60
74
  HealthStatusSchema: () => HealthStatusSchema,
61
75
  HttpError: () => HttpError,
62
76
  ListQueryBase: () => ListQueryBase,
77
+ PublishBusEventRequestSchema: () => PublishBusEventRequestSchema,
78
+ PublishBusEventResponseSchema: () => PublishBusEventResponseSchema,
63
79
  RegisterAgentRequestSchema: () => RegisterAgentRequestSchema,
64
80
  RegisterAgentResponseSchema: () => RegisterAgentResponseSchema,
65
81
  RegistrationTokenSchema: () => RegistrationTokenSchema,
66
82
  ReportCommandResultRequestSchema: () => ReportCommandResultRequestSchema,
67
83
  ReportedServiceSchema: () => ReportedServiceSchema,
68
84
  RuntimeKindSchema: () => RuntimeKindSchema,
85
+ ServiceCapabilitySchema: () => ServiceCapabilitySchema,
86
+ ServiceKind: () => ServiceKind,
87
+ ServiceKindSchema: () => ServiceKindSchema,
69
88
  ServiceReportRequestSchema: () => ServiceReportRequestSchema,
70
89
  SystemHealthSchema: () => SystemHealthSchema,
71
90
  SystemVersionSchema: () => SystemVersionSchema,
@@ -76,17 +95,26 @@ __export(index_exports, {
76
95
  actionPrepareResultSchema: () => actionPrepareResultSchema,
77
96
  adminLoginRequestSchema: () => adminLoginRequestSchema,
78
97
  agentHeartbeatRequestSchema: () => agentHeartbeatRequestSchema,
98
+ busCommandRequestSchema: () => busCommandRequestSchema,
99
+ busEventEnvelopeSchema: () => busEventEnvelopeSchema,
100
+ busRouteRuleSchema: () => busRouteRuleSchema,
101
+ busRoutingRuleSchema: () => busRoutingRuleSchema,
79
102
  configItemInputSchema: () => configItemInputSchema,
80
103
  createActionCommandRequestSchema: () => createActionCommandRequestSchema,
104
+ createBusRouteRuleRequestSchema: () => createBusRouteRuleRequestSchema,
81
105
  createRegistrationTokenRequestSchema: () => createRegistrationTokenRequestSchema,
82
106
  createUserRequestSchema: () => createUserRequestSchema,
107
+ eventMetadataSchema: () => eventMetadataSchema,
83
108
  healthReportInputSchema: () => healthReportInputSchema,
84
109
  paginate: () => paginate,
85
110
  parseSort: () => parseSort,
111
+ publishBusEventRequestSchema: () => publishBusEventRequestSchema,
112
+ publishBusEventResponseSchema: () => publishBusEventResponseSchema,
86
113
  registerAgentRequestSchema: () => registerAgentRequestSchema,
87
114
  reportCommandResultRequestSchema: () => reportCommandResultRequestSchema,
88
115
  reportedServiceSchema: () => reportedServiceSchema,
89
116
  resetUserPasswordRequestSchema: () => resetUserPasswordRequestSchema,
117
+ serviceCapabilitySchema: () => serviceCapabilitySchema,
90
118
  serviceReportRequestSchema: () => serviceReportRequestSchema,
91
119
  updateUserRequestSchema: () => updateUserRequestSchema,
92
120
  z: () => import_zod.z
@@ -101,27 +129,16 @@ var DangerLevel = ["LOW", "MEDIUM", "HIGH"];
101
129
  var AuditActorType = ["USER", "AGENT", "SYSTEM"];
102
130
  var AuditResult = ["SUCCESS", "FAILURE"];
103
131
  var TokenStatus = ["ACTIVE", "REVOKED", "EXPIRED", "USED"];
104
- var ErrorCode = {
105
- INTERNAL_ERROR: "INTERNAL_ERROR",
106
- VALIDATION_FAILED: "VALIDATION_FAILED",
107
- UNAUTHORIZED: "UNAUTHORIZED",
108
- FORBIDDEN: "FORBIDDEN",
109
- NOT_FOUND: "NOT_FOUND",
110
- CONFLICT: "CONFLICT",
111
- CSRF_INVALID: "CSRF_INVALID",
112
- ACTION_REQUIRES_CONFIRMATION: "ACTION_REQUIRES_CONFIRMATION",
113
- COMMAND_EXPIRED: "COMMAND_EXPIRED",
114
- TOKEN_REVOKED: "TOKEN_REVOKED",
115
- TOKEN_EXPIRED: "TOKEN_EXPIRED",
116
- AGENT_REVOKED: "AGENT_REVOKED",
117
- AGENT_DISABLED: "AGENT_DISABLED"
118
- };
132
+ var AgentMode = ["embedded", "ophub"];
133
+ var ServiceKind = ["business", "infrastructure", "system"];
134
+ var ServiceKindSchema = import_zod.z.enum(ServiceKind);
119
135
  var AnyJson = import_zod.z.record(import_zod.z.any());
120
136
  var AgentStatusSchema = import_zod.z.enum(AgentStatus);
121
137
  var CapsuleServiceStatusSchema = import_zod.z.enum(CapsuleServiceStatus);
122
138
  var HealthStatusSchema = import_zod.z.enum(HealthStatus);
123
139
  var CommandStatusSchema = import_zod.z.enum(CommandStatus);
124
140
  var DangerLevelSchema = import_zod.z.enum(DangerLevel).default("LOW");
141
+ var AgentModeSchema = import_zod.z.enum(AgentMode);
125
142
  var UserSchema = import_zod.z.object({ id: import_zod.z.string().startsWith("usr_"), username: import_zod.z.string(), displayName: import_zod.z.string().nullable().optional(), createdAt: import_zod.z.string(), updatedAt: import_zod.z.string() });
126
143
  var UserRole = import_zod.z.enum(["owner", "operator", "viewer"]);
127
144
  var createUserRequestSchema = import_zod.z.object({ username: import_zod.z.string().min(1), password: import_zod.z.string().min(12), displayName: import_zod.z.string().optional(), role: UserRole.default("viewer") });
@@ -130,24 +147,41 @@ var resetUserPasswordRequestSchema = import_zod.z.object({ password: import_zod.
130
147
  var AdminLoginRequestSchema = import_zod.z.object({ username: import_zod.z.string().min(1), password: import_zod.z.string().min(1) });
131
148
  var adminLoginRequestSchema = AdminLoginRequestSchema;
132
149
  var AdminSessionSchema = import_zod.z.object({ user: UserSchema, csrfToken: import_zod.z.string(), expiresAt: import_zod.z.string() });
133
- var AgentSchema = import_zod.z.object({ id: import_zod.z.string().startsWith("agt_"), code: import_zod.z.string(), name: import_zod.z.string().nullable().optional(), mode: import_zod.z.enum(["embedded", "sidecar", "external"]), runtime: import_zod.z.string().nullable().optional(), status: AgentStatusSchema, lastHeartbeatAt: import_zod.z.string().nullable().optional(), createdAt: import_zod.z.string(), updatedAt: import_zod.z.string() });
150
+ var AgentSchema = import_zod.z.object({ id: import_zod.z.string().startsWith("agt_"), code: import_zod.z.string(), name: import_zod.z.string().nullable().optional(), mode: AgentModeSchema, runtime: import_zod.z.string().nullable().optional(), status: AgentStatusSchema, lastHeartbeatAt: import_zod.z.string().nullable().optional(), createdAt: import_zod.z.string(), updatedAt: import_zod.z.string() });
134
151
  var RegistrationTokenSchema = import_zod.z.object({ id: import_zod.z.string().startsWith("tok_"), name: import_zod.z.string(), status: import_zod.z.enum(TokenStatus), expiresAt: import_zod.z.string().nullable().optional(), usedAt: import_zod.z.string().nullable().optional(), createdAt: import_zod.z.string() });
135
152
  var CreateRegistrationTokenRequestSchema = import_zod.z.object({ name: import_zod.z.string().default("Default registration token").optional(), expiresInSeconds: import_zod.z.number().int().min(60).optional() });
136
153
  var createRegistrationTokenRequestSchema = CreateRegistrationTokenRequestSchema;
137
154
  var CreateRegistrationTokenResponseSchema = RegistrationTokenSchema.extend({ rawToken: import_zod.z.string().startsWith("opstage_reg_") });
138
- var CapsuleManifestSchema = import_zod.z.object({ kind: import_zod.z.literal("CapsuleService"), schemaVersion: import_zod.z.string().default("1.0").optional(), code: import_zod.z.string().min(1), name: import_zod.z.string().min(1), description: import_zod.z.string().optional(), version: import_zod.z.string().min(1), runtime: import_zod.z.enum(["nodejs", "java", "python", "go", "other"]), agentMode: import_zod.z.enum(["embedded", "sidecar", "external"]), capabilities: import_zod.z.array(import_zod.z.string()).optional(), labels: import_zod.z.record(import_zod.z.string()).optional() }).passthrough();
155
+ var ServiceCapabilitySchema = import_zod.z.object({ name: import_zod.z.string().min(1).max(120), label: import_zod.z.string().max(200).optional(), description: import_zod.z.string().max(2e3).optional(), metadata: AnyJson.optional() });
156
+ var serviceCapabilitySchema = ServiceCapabilitySchema;
157
+ var EventMetadataSchema = import_zod.z.object({ name: import_zod.z.string().min(1).max(160), direction: import_zod.z.enum(["publish", "subscribe"]).optional(), schema: AnyJson.optional(), designOnly: import_zod.z.boolean().default(true), metadata: AnyJson.optional() });
158
+ var eventMetadataSchema = EventMetadataSchema;
159
+ var CapsuleManifestSchema = import_zod.z.object({ kind: import_zod.z.literal("CapsuleService"), schemaVersion: import_zod.z.string().default("1.0").optional(), code: import_zod.z.string().min(1), name: import_zod.z.string().min(1), description: import_zod.z.string().optional(), version: import_zod.z.string().min(1), runtime: import_zod.z.enum(["nodejs", "java", "python", "go", "other"]), agentMode: AgentModeSchema, capabilities: import_zod.z.array(import_zod.z.union([import_zod.z.string(), ServiceCapabilitySchema])).optional(), events: import_zod.z.array(EventMetadataSchema).optional(), labels: import_zod.z.record(import_zod.z.string()).optional() }).passthrough();
139
160
  var HealthReportInputSchema = import_zod.z.object({ status: HealthStatusSchema, message: import_zod.z.string().optional(), details: AnyJson.optional() });
140
161
  var healthReportInputSchema = HealthReportInputSchema;
141
162
  var ConfigItemInputSchema = import_zod.z.object({ key: import_zod.z.string(), label: import_zod.z.string().optional(), type: import_zod.z.string(), source: import_zod.z.string().optional(), editable: import_zod.z.boolean().optional(), sensitive: import_zod.z.boolean().optional(), valuePreview: import_zod.z.string().optional(), defaultValue: import_zod.z.string().optional(), secretRef: import_zod.z.string().optional() });
142
163
  var configItemInputSchema = ConfigItemInputSchema;
143
164
  var ActionDefinitionInputSchema = import_zod.z.object({ name: import_zod.z.string(), label: import_zod.z.string(), description: import_zod.z.string().optional(), dangerLevel: import_zod.z.enum(DangerLevel).default("LOW").optional(), requiresConfirmation: import_zod.z.boolean().optional(), category: import_zod.z.string().optional(), order: import_zod.z.number().int().optional(), inputSchema: AnyJson.optional(), outputSchema: AnyJson.optional(), timeoutSeconds: import_zod.z.number().int().positive().optional() });
144
165
  var actionDefinitionInputSchema = ActionDefinitionInputSchema;
145
- var ReportedServiceSchema = import_zod.z.object({ code: import_zod.z.string().min(1).max(80), name: import_zod.z.string().min(1).max(200), description: import_zod.z.string().max(2e3).optional(), version: import_zod.z.string().max(80).optional(), runtime: import_zod.z.string().optional(), manifest: AnyJson, health: HealthReportInputSchema.optional(), configs: import_zod.z.array(ConfigItemInputSchema).optional(), actions: import_zod.z.array(ActionDefinitionInputSchema).optional() });
166
+ var ReportedServiceSchema = import_zod.z.object({
167
+ code: import_zod.z.string().min(1).max(80),
168
+ name: import_zod.z.string().min(1).max(200),
169
+ description: import_zod.z.string().max(2e3).optional(),
170
+ version: import_zod.z.string().max(80).optional(),
171
+ runtime: import_zod.z.string().optional(),
172
+ manifest: AnyJson,
173
+ capabilities: import_zod.z.array(ServiceCapabilitySchema).optional(),
174
+ events: import_zod.z.array(EventMetadataSchema).optional(),
175
+ health: HealthReportInputSchema.optional(),
176
+ configs: import_zod.z.array(ConfigItemInputSchema).optional(),
177
+ actions: import_zod.z.array(ActionDefinitionInputSchema).optional(),
178
+ serviceKind: ServiceKindSchema.optional()
179
+ });
146
180
  var reportedServiceSchema = ReportedServiceSchema;
147
181
  var ServiceReportRequestSchema = import_zod.z.object({ services: import_zod.z.array(ReportedServiceSchema).min(1) });
148
182
  var serviceReportRequestSchema = ServiceReportRequestSchema;
149
183
  var RuntimeKindSchema = import_zod.z.enum(["nodejs", "java", "python", "go", "other"]);
150
- var RegisterAgentRequestSchema = import_zod.z.object({ registrationToken: import_zod.z.string().startsWith("opstage_reg_"), agent: import_zod.z.object({ code: import_zod.z.string(), name: import_zod.z.string().optional(), mode: import_zod.z.literal("embedded"), runtime: RuntimeKindSchema.optional() }), service: ReportedServiceSchema.optional() });
184
+ var RegisterAgentRequestSchema = import_zod.z.object({ registrationToken: import_zod.z.string().startsWith("opstage_reg_"), agent: import_zod.z.object({ code: import_zod.z.string(), name: import_zod.z.string().optional(), mode: AgentModeSchema.default("embedded"), runtime: RuntimeKindSchema.or(import_zod.z.string()).optional() }), service: ReportedServiceSchema.optional() });
151
185
  var registerAgentRequestSchema = RegisterAgentRequestSchema;
152
186
  var RegisterAgentResponseSchema = import_zod.z.object({ agentId: import_zod.z.string().startsWith("agt_"), agentToken: import_zod.z.string().startsWith("opstage_agent_"), heartbeatIntervalSeconds: import_zod.z.number().int(), commandPollIntervalSeconds: import_zod.z.number().int() });
153
187
  var AgentHeartbeatResponseSchema = import_zod.z.object({ heartbeatIntervalSeconds: import_zod.z.number().int(), commandPollIntervalSeconds: import_zod.z.number().int() });
@@ -165,6 +199,87 @@ var ActionPrepareResultSchema = import_zod.z.object({
165
199
  currentState: AnyJson.optional()
166
200
  });
167
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;
168
283
  var CreateActionCommandRequestSchema = import_zod.z.object({ payload: AnyJson.optional(), confirmation: import_zod.z.boolean().optional() });
169
284
  var createActionCommandRequestSchema = CreateActionCommandRequestSchema;
170
285
  var CommandTypeSchema = import_zod.z.enum(["ACTION_PREPARE", "ACTION_EXECUTE"]);
@@ -203,6 +318,21 @@ function parseSort(value, allowed) {
203
318
  function paginate(items, page, pageSize, total) {
204
319
  return { data: items, pagination: { page, pageSize, total } };
205
320
  }
321
+ var ErrorCode = {
322
+ INTERNAL_ERROR: "INTERNAL_ERROR",
323
+ VALIDATION_FAILED: "VALIDATION_FAILED",
324
+ UNAUTHORIZED: "UNAUTHORIZED",
325
+ FORBIDDEN: "FORBIDDEN",
326
+ NOT_FOUND: "NOT_FOUND",
327
+ CONFLICT: "CONFLICT",
328
+ CSRF_INVALID: "CSRF_INVALID",
329
+ ACTION_REQUIRES_CONFIRMATION: "ACTION_REQUIRES_CONFIRMATION",
330
+ COMMAND_EXPIRED: "COMMAND_EXPIRED",
331
+ TOKEN_REVOKED: "TOKEN_REVOKED",
332
+ TOKEN_EXPIRED: "TOKEN_EXPIRED",
333
+ AGENT_REVOKED: "AGENT_REVOKED",
334
+ AGENT_DISABLED: "AGENT_DISABLED"
335
+ };
206
336
  // Annotate the CommonJS export names for ESM import in node:
207
337
  0 && (module.exports = {
208
338
  ActionDefinitionInputSchema,
@@ -212,6 +342,8 @@ function paginate(items, page, pageSize, total) {
212
342
  AdminSessionSchema,
213
343
  AgentHeartbeatRequestSchema,
214
344
  AgentHeartbeatResponseSchema,
345
+ AgentMode,
346
+ AgentModeSchema,
215
347
  AgentSchema,
216
348
  AgentStatus,
217
349
  AgentStatusSchema,
@@ -219,6 +351,16 @@ function paginate(items, page, pageSize, total) {
219
351
  AuditActorType,
220
352
  AuditEventSchema,
221
353
  AuditResult,
354
+ BusCommandRequestSchema,
355
+ BusErrorCode,
356
+ BusEventEnvelopeSchema,
357
+ BusEventRecordSchema,
358
+ BusRouteRuleSchema,
359
+ BusRouteStatus,
360
+ BusRouteStatusSchema,
361
+ BusRoutedCommandSchema,
362
+ BusRoutingRuleSchema,
363
+ CapsuleBusExperimentalSchema,
222
364
  CapsuleManifestSchema,
223
365
  CapsuleServiceDetailSchema,
224
366
  CapsuleServiceSchema,
@@ -233,24 +375,31 @@ function paginate(items, page, pageSize, total) {
233
375
  ConfigItemInputSchema,
234
376
  ConfigItemSchema,
235
377
  CreateActionCommandRequestSchema,
378
+ CreateBusRouteRuleRequestSchema,
236
379
  CreateRegistrationTokenRequestSchema,
237
380
  CreateRegistrationTokenResponseSchema,
238
381
  DangerLevel,
239
382
  DangerLevelSchema,
240
383
  DashboardSummarySchema,
241
384
  ErrorCode,
385
+ EventMetadataSchema,
242
386
  HealthReportInputSchema,
243
387
  HealthReportSchema,
244
388
  HealthStatus,
245
389
  HealthStatusSchema,
246
390
  HttpError,
247
391
  ListQueryBase,
392
+ PublishBusEventRequestSchema,
393
+ PublishBusEventResponseSchema,
248
394
  RegisterAgentRequestSchema,
249
395
  RegisterAgentResponseSchema,
250
396
  RegistrationTokenSchema,
251
397
  ReportCommandResultRequestSchema,
252
398
  ReportedServiceSchema,
253
399
  RuntimeKindSchema,
400
+ ServiceCapabilitySchema,
401
+ ServiceKind,
402
+ ServiceKindSchema,
254
403
  ServiceReportRequestSchema,
255
404
  SystemHealthSchema,
256
405
  SystemVersionSchema,
@@ -261,17 +410,26 @@ function paginate(items, page, pageSize, total) {
261
410
  actionPrepareResultSchema,
262
411
  adminLoginRequestSchema,
263
412
  agentHeartbeatRequestSchema,
413
+ busCommandRequestSchema,
414
+ busEventEnvelopeSchema,
415
+ busRouteRuleSchema,
416
+ busRoutingRuleSchema,
264
417
  configItemInputSchema,
265
418
  createActionCommandRequestSchema,
419
+ createBusRouteRuleRequestSchema,
266
420
  createRegistrationTokenRequestSchema,
267
421
  createUserRequestSchema,
422
+ eventMetadataSchema,
268
423
  healthReportInputSchema,
269
424
  paginate,
270
425
  parseSort,
426
+ publishBusEventRequestSchema,
427
+ publishBusEventResponseSchema,
271
428
  registerAgentRequestSchema,
272
429
  reportCommandResultRequestSchema,
273
430
  reportedServiceSchema,
274
431
  resetUserPasswordRequestSchema,
432
+ serviceCapabilitySchema,
275
433
  serviceReportRequestSchema,
276
434
  updateUserRequestSchema,
277
435
  z