@xtrape/capsule-contracts-node 0.2.0 → 0.3.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/dist/index.js CHANGED
@@ -8,27 +8,16 @@ var DangerLevel = ["LOW", "MEDIUM", "HIGH"];
8
8
  var AuditActorType = ["USER", "AGENT", "SYSTEM"];
9
9
  var AuditResult = ["SUCCESS", "FAILURE"];
10
10
  var TokenStatus = ["ACTIVE", "REVOKED", "EXPIRED", "USED"];
11
- var ErrorCode = {
12
- INTERNAL_ERROR: "INTERNAL_ERROR",
13
- VALIDATION_FAILED: "VALIDATION_FAILED",
14
- UNAUTHORIZED: "UNAUTHORIZED",
15
- FORBIDDEN: "FORBIDDEN",
16
- NOT_FOUND: "NOT_FOUND",
17
- CONFLICT: "CONFLICT",
18
- CSRF_INVALID: "CSRF_INVALID",
19
- ACTION_REQUIRES_CONFIRMATION: "ACTION_REQUIRES_CONFIRMATION",
20
- COMMAND_EXPIRED: "COMMAND_EXPIRED",
21
- TOKEN_REVOKED: "TOKEN_REVOKED",
22
- TOKEN_EXPIRED: "TOKEN_EXPIRED",
23
- AGENT_REVOKED: "AGENT_REVOKED",
24
- AGENT_DISABLED: "AGENT_DISABLED"
25
- };
11
+ var AgentMode = ["embedded", "ophub"];
12
+ var ServiceKind = ["business", "infrastructure", "system"];
13
+ var ServiceKindSchema = z.enum(ServiceKind);
26
14
  var AnyJson = z.record(z.any());
27
15
  var AgentStatusSchema = z.enum(AgentStatus);
28
16
  var CapsuleServiceStatusSchema = z.enum(CapsuleServiceStatus);
29
17
  var HealthStatusSchema = z.enum(HealthStatus);
30
18
  var CommandStatusSchema = z.enum(CommandStatus);
31
19
  var DangerLevelSchema = z.enum(DangerLevel).default("LOW");
20
+ var AgentModeSchema = z.enum(AgentMode);
32
21
  var UserSchema = z.object({ id: z.string().startsWith("usr_"), username: z.string(), displayName: z.string().nullable().optional(), createdAt: z.string(), updatedAt: z.string() });
33
22
  var UserRole = z.enum(["owner", "operator", "viewer"]);
34
23
  var createUserRequestSchema = z.object({ username: z.string().min(1), password: z.string().min(12), displayName: z.string().optional(), role: UserRole.default("viewer") });
@@ -37,24 +26,41 @@ var resetUserPasswordRequestSchema = z.object({ password: z.string().min(12) });
37
26
  var AdminLoginRequestSchema = z.object({ username: z.string().min(1), password: z.string().min(1) });
38
27
  var adminLoginRequestSchema = AdminLoginRequestSchema;
39
28
  var AdminSessionSchema = z.object({ user: UserSchema, csrfToken: z.string(), expiresAt: z.string() });
40
- var AgentSchema = z.object({ id: z.string().startsWith("agt_"), code: z.string(), name: z.string().nullable().optional(), mode: z.enum(["embedded", "sidecar", "external"]), runtime: z.string().nullable().optional(), status: AgentStatusSchema, lastHeartbeatAt: z.string().nullable().optional(), createdAt: z.string(), updatedAt: z.string() });
29
+ var AgentSchema = z.object({ id: z.string().startsWith("agt_"), code: z.string(), name: z.string().nullable().optional(), mode: AgentModeSchema, runtime: z.string().nullable().optional(), status: AgentStatusSchema, lastHeartbeatAt: z.string().nullable().optional(), createdAt: z.string(), updatedAt: z.string() });
41
30
  var RegistrationTokenSchema = z.object({ id: z.string().startsWith("tok_"), name: z.string(), status: z.enum(TokenStatus), expiresAt: z.string().nullable().optional(), usedAt: z.string().nullable().optional(), createdAt: z.string() });
42
31
  var CreateRegistrationTokenRequestSchema = z.object({ name: z.string().default("Default registration token").optional(), expiresInSeconds: z.number().int().min(60).optional() });
43
32
  var createRegistrationTokenRequestSchema = CreateRegistrationTokenRequestSchema;
44
33
  var CreateRegistrationTokenResponseSchema = RegistrationTokenSchema.extend({ rawToken: z.string().startsWith("opstage_reg_") });
45
- var CapsuleManifestSchema = z.object({ kind: z.literal("CapsuleService"), schemaVersion: z.string().default("1.0").optional(), code: z.string().min(1), name: z.string().min(1), description: z.string().optional(), version: z.string().min(1), runtime: z.enum(["nodejs", "java", "python", "go", "other"]), agentMode: z.enum(["embedded", "sidecar", "external"]), capabilities: z.array(z.string()).optional(), labels: z.record(z.string()).optional() }).passthrough();
34
+ var ServiceCapabilitySchema = z.object({ name: z.string().min(1).max(120), label: z.string().max(200).optional(), description: z.string().max(2e3).optional(), metadata: AnyJson.optional() });
35
+ var serviceCapabilitySchema = ServiceCapabilitySchema;
36
+ var EventMetadataSchema = z.object({ name: z.string().min(1).max(160), direction: z.enum(["publish", "subscribe"]).optional(), schema: AnyJson.optional(), designOnly: z.boolean().default(true), metadata: AnyJson.optional() });
37
+ var eventMetadataSchema = EventMetadataSchema;
38
+ var CapsuleManifestSchema = z.object({ kind: z.literal("CapsuleService"), schemaVersion: z.string().default("1.0").optional(), code: z.string().min(1), name: z.string().min(1), description: z.string().optional(), version: z.string().min(1), runtime: z.enum(["nodejs", "java", "python", "go", "other"]), agentMode: AgentModeSchema, capabilities: z.array(z.union([z.string(), ServiceCapabilitySchema])).optional(), events: z.array(EventMetadataSchema).optional(), labels: z.record(z.string()).optional() }).passthrough();
46
39
  var HealthReportInputSchema = z.object({ status: HealthStatusSchema, message: z.string().optional(), details: AnyJson.optional() });
47
40
  var healthReportInputSchema = HealthReportInputSchema;
48
41
  var ConfigItemInputSchema = z.object({ key: z.string(), label: z.string().optional(), type: z.string(), source: z.string().optional(), editable: z.boolean().optional(), sensitive: z.boolean().optional(), valuePreview: z.string().optional(), defaultValue: z.string().optional(), secretRef: z.string().optional() });
49
42
  var configItemInputSchema = ConfigItemInputSchema;
50
43
  var ActionDefinitionInputSchema = z.object({ name: z.string(), label: z.string(), description: z.string().optional(), dangerLevel: z.enum(DangerLevel).default("LOW").optional(), requiresConfirmation: z.boolean().optional(), category: z.string().optional(), order: z.number().int().optional(), inputSchema: AnyJson.optional(), outputSchema: AnyJson.optional(), timeoutSeconds: z.number().int().positive().optional() });
51
44
  var actionDefinitionInputSchema = ActionDefinitionInputSchema;
52
- var ReportedServiceSchema = z.object({ code: z.string().min(1).max(80), name: z.string().min(1).max(200), description: z.string().max(2e3).optional(), version: z.string().max(80).optional(), runtime: z.string().optional(), manifest: AnyJson, health: HealthReportInputSchema.optional(), configs: z.array(ConfigItemInputSchema).optional(), actions: z.array(ActionDefinitionInputSchema).optional() });
45
+ var ReportedServiceSchema = z.object({
46
+ code: z.string().min(1).max(80),
47
+ name: z.string().min(1).max(200),
48
+ description: z.string().max(2e3).optional(),
49
+ version: z.string().max(80).optional(),
50
+ runtime: z.string().optional(),
51
+ manifest: AnyJson,
52
+ capabilities: z.array(ServiceCapabilitySchema).optional(),
53
+ events: z.array(EventMetadataSchema).optional(),
54
+ health: HealthReportInputSchema.optional(),
55
+ configs: z.array(ConfigItemInputSchema).optional(),
56
+ actions: z.array(ActionDefinitionInputSchema).optional(),
57
+ serviceKind: ServiceKindSchema.optional()
58
+ });
53
59
  var reportedServiceSchema = ReportedServiceSchema;
54
60
  var ServiceReportRequestSchema = z.object({ services: z.array(ReportedServiceSchema).min(1) });
55
61
  var serviceReportRequestSchema = ServiceReportRequestSchema;
56
62
  var RuntimeKindSchema = z.enum(["nodejs", "java", "python", "go", "other"]);
57
- var RegisterAgentRequestSchema = z.object({ registrationToken: z.string().startsWith("opstage_reg_"), agent: z.object({ code: z.string(), name: z.string().optional(), mode: z.literal("embedded"), runtime: RuntimeKindSchema.optional() }), service: ReportedServiceSchema.optional() });
63
+ var RegisterAgentRequestSchema = z.object({ registrationToken: z.string().startsWith("opstage_reg_"), agent: z.object({ code: z.string(), name: z.string().optional(), mode: AgentModeSchema.default("embedded"), runtime: RuntimeKindSchema.or(z.string()).optional() }), service: ReportedServiceSchema.optional() });
58
64
  var registerAgentRequestSchema = RegisterAgentRequestSchema;
59
65
  var RegisterAgentResponseSchema = z.object({ agentId: z.string().startsWith("agt_"), agentToken: z.string().startsWith("opstage_agent_"), heartbeatIntervalSeconds: z.number().int(), commandPollIntervalSeconds: z.number().int() });
60
66
  var AgentHeartbeatResponseSchema = z.object({ heartbeatIntervalSeconds: z.number().int(), commandPollIntervalSeconds: z.number().int() });
@@ -110,6 +116,21 @@ function parseSort(value, allowed) {
110
116
  function paginate(items, page, pageSize, total) {
111
117
  return { data: items, pagination: { page, pageSize, total } };
112
118
  }
119
+ var ErrorCode = {
120
+ INTERNAL_ERROR: "INTERNAL_ERROR",
121
+ VALIDATION_FAILED: "VALIDATION_FAILED",
122
+ UNAUTHORIZED: "UNAUTHORIZED",
123
+ FORBIDDEN: "FORBIDDEN",
124
+ NOT_FOUND: "NOT_FOUND",
125
+ CONFLICT: "CONFLICT",
126
+ CSRF_INVALID: "CSRF_INVALID",
127
+ ACTION_REQUIRES_CONFIRMATION: "ACTION_REQUIRES_CONFIRMATION",
128
+ COMMAND_EXPIRED: "COMMAND_EXPIRED",
129
+ TOKEN_REVOKED: "TOKEN_REVOKED",
130
+ TOKEN_EXPIRED: "TOKEN_EXPIRED",
131
+ AGENT_REVOKED: "AGENT_REVOKED",
132
+ AGENT_DISABLED: "AGENT_DISABLED"
133
+ };
113
134
  export {
114
135
  ActionDefinitionInputSchema,
115
136
  ActionDefinitionSchema,
@@ -118,6 +139,8 @@ export {
118
139
  AdminSessionSchema,
119
140
  AgentHeartbeatRequestSchema,
120
141
  AgentHeartbeatResponseSchema,
142
+ AgentMode,
143
+ AgentModeSchema,
121
144
  AgentSchema,
122
145
  AgentStatus,
123
146
  AgentStatusSchema,
@@ -145,6 +168,7 @@ export {
145
168
  DangerLevelSchema,
146
169
  DashboardSummarySchema,
147
170
  ErrorCode,
171
+ EventMetadataSchema,
148
172
  HealthReportInputSchema,
149
173
  HealthReportSchema,
150
174
  HealthStatus,
@@ -157,6 +181,9 @@ export {
157
181
  ReportCommandResultRequestSchema,
158
182
  ReportedServiceSchema,
159
183
  RuntimeKindSchema,
184
+ ServiceCapabilitySchema,
185
+ ServiceKind,
186
+ ServiceKindSchema,
160
187
  ServiceReportRequestSchema,
161
188
  SystemHealthSchema,
162
189
  SystemVersionSchema,
@@ -171,6 +198,7 @@ export {
171
198
  createActionCommandRequestSchema,
172
199
  createRegistrationTokenRequestSchema,
173
200
  createUserRequestSchema,
201
+ eventMetadataSchema,
174
202
  healthReportInputSchema,
175
203
  paginate,
176
204
  parseSort,
@@ -178,6 +206,7 @@ export {
178
206
  reportCommandResultRequestSchema,
179
207
  reportedServiceSchema,
180
208
  resetUserPasswordRequestSchema,
209
+ serviceCapabilitySchema,
181
210
  serviceReportRequestSchema,
182
211
  updateUserRequestSchema,
183
212
  z
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xtrape/capsule-contracts-node",
3
- "version": "0.2.0",
3
+ "version": "0.3.0",
4
4
  "description": "TypeScript contracts and Zod schemas for Xtrape Capsule and Opstage wire protocols.",
5
5
  "keywords": [
6
6
  "xtrape",
@@ -36,6 +36,13 @@
36
36
  "LICENSE",
37
37
  "NOTICE"
38
38
  ],
39
+ "scripts": {
40
+ "build": "tsup src/index.ts --format esm,cjs --dts",
41
+ "prepack": "pnpm build",
42
+ "test": "vitest run",
43
+ "typecheck": "tsc --noEmit",
44
+ "lint": "tsc --noEmit"
45
+ },
39
46
  "dependencies": {
40
47
  "zod": "^3.25.0"
41
48
  },
@@ -51,11 +58,5 @@
51
58
  "registry": "https://registry.npmjs.org/",
52
59
  "access": "public"
53
60
  },
54
- "license": "Apache-2.0",
55
- "scripts": {
56
- "build": "tsup src/index.ts --format esm,cjs --dts",
57
- "test": "vitest run",
58
- "typecheck": "tsc --noEmit",
59
- "lint": "tsc --noEmit"
60
- }
61
- }
61
+ "license": "Apache-2.0"
62
+ }