@xtrape/capsule-contracts-node 0.1.0-public-review.1 → 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/README.md +82 -11
- package/dist/index.cjs +56 -29
- package/dist/index.d.cts +728 -56
- package/dist/index.d.ts +728 -56
- package/dist/index.js +48 -27
- package/package.json +1 -2
package/dist/index.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
|
-
import { customAlphabet } from "nanoid";
|
|
3
2
|
import { z } from "zod";
|
|
4
3
|
var AgentStatus = ["PENDING", "ONLINE", "OFFLINE", "DISABLED", "REVOKED"];
|
|
5
4
|
var CapsuleServiceStatus = ["UNKNOWN", "HEALTHY", "UNHEALTHY", "STALE", "OFFLINE"];
|
|
@@ -9,32 +8,16 @@ var DangerLevel = ["LOW", "MEDIUM", "HIGH"];
|
|
|
9
8
|
var AuditActorType = ["USER", "AGENT", "SYSTEM"];
|
|
10
9
|
var AuditResult = ["SUCCESS", "FAILURE"];
|
|
11
10
|
var TokenStatus = ["ACTIVE", "REVOKED", "EXPIRED", "USED"];
|
|
12
|
-
var
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
UNAUTHORIZED: "UNAUTHORIZED",
|
|
16
|
-
FORBIDDEN: "FORBIDDEN",
|
|
17
|
-
NOT_FOUND: "NOT_FOUND",
|
|
18
|
-
CONFLICT: "CONFLICT",
|
|
19
|
-
CSRF_INVALID: "CSRF_INVALID",
|
|
20
|
-
ACTION_REQUIRES_CONFIRMATION: "ACTION_REQUIRES_CONFIRMATION",
|
|
21
|
-
COMMAND_EXPIRED: "COMMAND_EXPIRED",
|
|
22
|
-
TOKEN_REVOKED: "TOKEN_REVOKED",
|
|
23
|
-
TOKEN_EXPIRED: "TOKEN_EXPIRED",
|
|
24
|
-
AGENT_REVOKED: "AGENT_REVOKED",
|
|
25
|
-
AGENT_DISABLED: "AGENT_DISABLED"
|
|
26
|
-
};
|
|
27
|
-
var idPrefixes = ["wks_", "usr_", "agt_", "tok_", "svc_", "hlr_", "cfg_", "act_", "cmd_", "crs_", "aud_"];
|
|
28
|
-
var NANO = customAlphabet("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_-", 21);
|
|
29
|
-
function newId(prefix) {
|
|
30
|
-
return `${prefix}${NANO()}`;
|
|
31
|
-
}
|
|
11
|
+
var AgentMode = ["embedded", "ophub"];
|
|
12
|
+
var ServiceKind = ["business", "infrastructure", "system"];
|
|
13
|
+
var ServiceKindSchema = z.enum(ServiceKind);
|
|
32
14
|
var AnyJson = z.record(z.any());
|
|
33
15
|
var AgentStatusSchema = z.enum(AgentStatus);
|
|
34
16
|
var CapsuleServiceStatusSchema = z.enum(CapsuleServiceStatus);
|
|
35
17
|
var HealthStatusSchema = z.enum(HealthStatus);
|
|
36
18
|
var CommandStatusSchema = z.enum(CommandStatus);
|
|
37
19
|
var DangerLevelSchema = z.enum(DangerLevel).default("LOW");
|
|
20
|
+
var AgentModeSchema = z.enum(AgentMode);
|
|
38
21
|
var UserSchema = z.object({ id: z.string().startsWith("usr_"), username: z.string(), displayName: z.string().nullable().optional(), createdAt: z.string(), updatedAt: z.string() });
|
|
39
22
|
var UserRole = z.enum(["owner", "operator", "viewer"]);
|
|
40
23
|
var createUserRequestSchema = z.object({ username: z.string().min(1), password: z.string().min(12), displayName: z.string().optional(), role: UserRole.default("viewer") });
|
|
@@ -43,24 +26,41 @@ var resetUserPasswordRequestSchema = z.object({ password: z.string().min(12) });
|
|
|
43
26
|
var AdminLoginRequestSchema = z.object({ username: z.string().min(1), password: z.string().min(1) });
|
|
44
27
|
var adminLoginRequestSchema = AdminLoginRequestSchema;
|
|
45
28
|
var AdminSessionSchema = z.object({ user: UserSchema, csrfToken: z.string(), expiresAt: z.string() });
|
|
46
|
-
var AgentSchema = z.object({ id: z.string().startsWith("agt_"), code: z.string(), name: z.string().nullable().optional(), mode:
|
|
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() });
|
|
47
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() });
|
|
48
31
|
var CreateRegistrationTokenRequestSchema = z.object({ name: z.string().default("Default registration token").optional(), expiresInSeconds: z.number().int().min(60).optional() });
|
|
49
32
|
var createRegistrationTokenRequestSchema = CreateRegistrationTokenRequestSchema;
|
|
50
33
|
var CreateRegistrationTokenResponseSchema = RegistrationTokenSchema.extend({ rawToken: z.string().startsWith("opstage_reg_") });
|
|
51
|
-
var
|
|
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();
|
|
52
39
|
var HealthReportInputSchema = z.object({ status: HealthStatusSchema, message: z.string().optional(), details: AnyJson.optional() });
|
|
53
40
|
var healthReportInputSchema = HealthReportInputSchema;
|
|
54
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() });
|
|
55
42
|
var configItemInputSchema = ConfigItemInputSchema;
|
|
56
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() });
|
|
57
44
|
var actionDefinitionInputSchema = ActionDefinitionInputSchema;
|
|
58
|
-
var ReportedServiceSchema = z.object({
|
|
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
|
+
});
|
|
59
59
|
var reportedServiceSchema = ReportedServiceSchema;
|
|
60
60
|
var ServiceReportRequestSchema = z.object({ services: z.array(ReportedServiceSchema).min(1) });
|
|
61
61
|
var serviceReportRequestSchema = ServiceReportRequestSchema;
|
|
62
62
|
var RuntimeKindSchema = z.enum(["nodejs", "java", "python", "go", "other"]);
|
|
63
|
-
var RegisterAgentRequestSchema = z.object({ registrationToken: z.string().startsWith("opstage_reg_"), agent: z.object({ code: z.string(), name: z.string().optional(), mode:
|
|
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() });
|
|
64
64
|
var registerAgentRequestSchema = RegisterAgentRequestSchema;
|
|
65
65
|
var RegisterAgentResponseSchema = z.object({ agentId: z.string().startsWith("agt_"), agentToken: z.string().startsWith("opstage_agent_"), heartbeatIntervalSeconds: z.number().int(), commandPollIntervalSeconds: z.number().int() });
|
|
66
66
|
var AgentHeartbeatResponseSchema = z.object({ heartbeatIntervalSeconds: z.number().int(), commandPollIntervalSeconds: z.number().int() });
|
|
@@ -116,6 +116,21 @@ function parseSort(value, allowed) {
|
|
|
116
116
|
function paginate(items, page, pageSize, total) {
|
|
117
117
|
return { data: items, pagination: { page, pageSize, total } };
|
|
118
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
|
+
};
|
|
119
134
|
export {
|
|
120
135
|
ActionDefinitionInputSchema,
|
|
121
136
|
ActionDefinitionSchema,
|
|
@@ -124,6 +139,8 @@ export {
|
|
|
124
139
|
AdminSessionSchema,
|
|
125
140
|
AgentHeartbeatRequestSchema,
|
|
126
141
|
AgentHeartbeatResponseSchema,
|
|
142
|
+
AgentMode,
|
|
143
|
+
AgentModeSchema,
|
|
127
144
|
AgentSchema,
|
|
128
145
|
AgentStatus,
|
|
129
146
|
AgentStatusSchema,
|
|
@@ -151,6 +168,7 @@ export {
|
|
|
151
168
|
DangerLevelSchema,
|
|
152
169
|
DashboardSummarySchema,
|
|
153
170
|
ErrorCode,
|
|
171
|
+
EventMetadataSchema,
|
|
154
172
|
HealthReportInputSchema,
|
|
155
173
|
HealthReportSchema,
|
|
156
174
|
HealthStatus,
|
|
@@ -163,6 +181,9 @@ export {
|
|
|
163
181
|
ReportCommandResultRequestSchema,
|
|
164
182
|
ReportedServiceSchema,
|
|
165
183
|
RuntimeKindSchema,
|
|
184
|
+
ServiceCapabilitySchema,
|
|
185
|
+
ServiceKind,
|
|
186
|
+
ServiceKindSchema,
|
|
166
187
|
ServiceReportRequestSchema,
|
|
167
188
|
SystemHealthSchema,
|
|
168
189
|
SystemVersionSchema,
|
|
@@ -177,15 +198,15 @@ export {
|
|
|
177
198
|
createActionCommandRequestSchema,
|
|
178
199
|
createRegistrationTokenRequestSchema,
|
|
179
200
|
createUserRequestSchema,
|
|
201
|
+
eventMetadataSchema,
|
|
180
202
|
healthReportInputSchema,
|
|
181
|
-
idPrefixes,
|
|
182
|
-
newId,
|
|
183
203
|
paginate,
|
|
184
204
|
parseSort,
|
|
185
205
|
registerAgentRequestSchema,
|
|
186
206
|
reportCommandResultRequestSchema,
|
|
187
207
|
reportedServiceSchema,
|
|
188
208
|
resetUserPasswordRequestSchema,
|
|
209
|
+
serviceCapabilitySchema,
|
|
189
210
|
serviceReportRequestSchema,
|
|
190
211
|
updateUserRequestSchema,
|
|
191
212
|
z
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xtrape/capsule-contracts-node",
|
|
3
|
-
"version": "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",
|
|
@@ -44,7 +44,6 @@
|
|
|
44
44
|
"lint": "tsc --noEmit"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"nanoid": "^5.0.9",
|
|
48
47
|
"zod": "^3.25.0"
|
|
49
48
|
},
|
|
50
49
|
"devDependencies": {
|