@lssm/lib.infra-ops-spec 2.0.1
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 +61 -0
- package/dist/fixtures-deployment.d.ts +249 -0
- package/dist/fixtures-deployment.js +2 -0
- package/dist/fixtures-incident.d.ts +219 -0
- package/dist/fixtures-incident.js +2 -0
- package/dist/fixtures.d.ts +2 -0
- package/dist/fixtures.js +2 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +2 -0
- package/dist/infra-ops-spec.test.d.ts +1 -0
- package/dist/intent-architecture.d.ts +104 -0
- package/dist/intent-architecture.js +2 -0
- package/dist/intent-canonical.d.ts +4 -0
- package/dist/intent-canonical.js +2 -0
- package/dist/intent-comparison.d.ts +8 -0
- package/dist/intent-comparison.js +2 -0
- package/dist/intent-core.d.ts +98 -0
- package/dist/intent-core.js +2 -0
- package/dist/intent-decisions.d.ts +72 -0
- package/dist/intent-decisions.js +2 -0
- package/dist/intent-fixtures-decision.d.ts +4 -0
- package/dist/intent-fixtures-decision.js +2 -0
- package/dist/intent-fixtures.d.ts +3 -0
- package/dist/intent-fixtures.js +2 -0
- package/dist/intent-plans.d.ts +64 -0
- package/dist/intent-plans.js +2 -0
- package/dist/intent-types.d.ts +284 -0
- package/dist/intent-types.js +2 -0
- package/dist/intent-validation-bindings.d.ts +3 -0
- package/dist/intent-validation-bindings.js +2 -0
- package/dist/intent-validation-refs.d.ts +7 -0
- package/dist/intent-validation-refs.js +2 -0
- package/dist/intent-validation-rules.d.ts +3 -0
- package/dist/intent-validation-rules.js +2 -0
- package/dist/intent-validation-shared.d.ts +9 -0
- package/dist/intent-validation-shared.js +2 -0
- package/dist/intent-validation.d.ts +10 -0
- package/dist/intent-validation.js +2 -0
- package/dist/intent.test.d.ts +1 -0
- package/dist/node/fixtures-deployment.js +1 -0
- package/dist/node/fixtures-incident.js +1 -0
- package/dist/node/fixtures.js +1 -0
- package/dist/node/index.js +1 -0
- package/dist/node/intent-architecture.js +1 -0
- package/dist/node/intent-canonical.js +1 -0
- package/dist/node/intent-comparison.js +1 -0
- package/dist/node/intent-core.js +1 -0
- package/dist/node/intent-decisions.js +1 -0
- package/dist/node/intent-fixtures-decision.js +1 -0
- package/dist/node/intent-fixtures.js +1 -0
- package/dist/node/intent-plans.js +1 -0
- package/dist/node/intent-types.js +1 -0
- package/dist/node/intent-validation-bindings.js +1 -0
- package/dist/node/intent-validation-refs.js +1 -0
- package/dist/node/intent-validation-rules.js +1 -0
- package/dist/node/intent-validation-shared.js +1 -0
- package/dist/node/intent-validation.js +1 -0
- package/dist/node/types.js +1 -0
- package/dist/node/validation.js +1 -0
- package/dist/types.d.ts +748 -0
- package/dist/types.js +2 -0
- package/dist/validation.d.ts +13 -0
- package/dist/validation.js +2 -0
- package/package.json +421 -0
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
/** Complete additive V2 infrastructure-intent contract graph. */
|
|
3
|
+
export declare const InfrastructureIntentV2Schema: z.ZodObject<{
|
|
4
|
+
id: z.ZodString;
|
|
5
|
+
version: z.ZodLiteral<"2.0.0">;
|
|
6
|
+
goals: z.ZodArray<z.ZodObject<{
|
|
7
|
+
id: z.ZodString;
|
|
8
|
+
statement: z.ZodString;
|
|
9
|
+
priority: z.ZodEnum<{
|
|
10
|
+
critical: "critical";
|
|
11
|
+
high: "high";
|
|
12
|
+
low: "low";
|
|
13
|
+
medium: "medium";
|
|
14
|
+
}>;
|
|
15
|
+
requirementIds: z.ZodArray<z.ZodString>;
|
|
16
|
+
}, z.core.$strict>>;
|
|
17
|
+
requirements: z.ZodArray<z.ZodObject<{
|
|
18
|
+
id: z.ZodString;
|
|
19
|
+
goalId: z.ZodString;
|
|
20
|
+
category: z.ZodEnum<{
|
|
21
|
+
availability: "availability";
|
|
22
|
+
capacity: "capacity";
|
|
23
|
+
cost: "cost";
|
|
24
|
+
data: "data";
|
|
25
|
+
latency: "latency";
|
|
26
|
+
operability: "operability";
|
|
27
|
+
portability: "portability";
|
|
28
|
+
recovery: "recovery";
|
|
29
|
+
security: "security";
|
|
30
|
+
}>;
|
|
31
|
+
description: z.ZodString;
|
|
32
|
+
criticality: z.ZodEnum<{
|
|
33
|
+
hard: "hard";
|
|
34
|
+
soft: "soft";
|
|
35
|
+
}>;
|
|
36
|
+
measure: z.ZodOptional<z.ZodString>;
|
|
37
|
+
target: z.ZodOptional<z.ZodNumber>;
|
|
38
|
+
unit: z.ZodOptional<z.ZodString>;
|
|
39
|
+
}, z.core.$strict>>;
|
|
40
|
+
workloadEnvelopes: z.ZodArray<z.ZodObject<{
|
|
41
|
+
id: z.ZodString;
|
|
42
|
+
concurrentUsers: z.ZodNumber;
|
|
43
|
+
requestsPerSecond: z.ZodNumber;
|
|
44
|
+
burstMultiplier: z.ZodNumber;
|
|
45
|
+
latencyP95Ms: z.ZodNumber;
|
|
46
|
+
availabilityPercent: z.ZodNumber;
|
|
47
|
+
dataVolumeGb: z.ZodNumber;
|
|
48
|
+
monthlyDataGrowthPercent: z.ZodNumber;
|
|
49
|
+
storageGb: z.ZodNumber;
|
|
50
|
+
monthlyEgressGb: z.ZodNumber;
|
|
51
|
+
backgroundJobsPerHour: z.ZodNumber;
|
|
52
|
+
rpoMinutes: z.ZodNumber;
|
|
53
|
+
rtoMinutes: z.ZodNumber;
|
|
54
|
+
regions: z.ZodArray<z.ZodString>;
|
|
55
|
+
forecastMonths: z.ZodNumber;
|
|
56
|
+
annualTrafficGrowthPercent: z.ZodNumber;
|
|
57
|
+
}, z.core.$strict>>;
|
|
58
|
+
restrictions: z.ZodArray<z.ZodObject<{
|
|
59
|
+
id: z.ZodString;
|
|
60
|
+
requirementId: z.ZodOptional<z.ZodString>;
|
|
61
|
+
scopeIds: z.ZodArray<z.ZodString>;
|
|
62
|
+
kind: z.ZodEnum<{
|
|
63
|
+
capability: "capability";
|
|
64
|
+
compliance: "compliance";
|
|
65
|
+
cost: "cost";
|
|
66
|
+
network: "network";
|
|
67
|
+
operability: "operability";
|
|
68
|
+
residency: "residency";
|
|
69
|
+
technology: "technology";
|
|
70
|
+
}>;
|
|
71
|
+
rule: z.ZodString;
|
|
72
|
+
severity: z.ZodEnum<{
|
|
73
|
+
hard: "hard";
|
|
74
|
+
soft: "soft";
|
|
75
|
+
}>;
|
|
76
|
+
rationale: z.ZodString;
|
|
77
|
+
}, z.core.$strict>>;
|
|
78
|
+
providerPolicies: z.ZodArray<z.ZodObject<{
|
|
79
|
+
id: z.ZodString;
|
|
80
|
+
allowedProviderClasses: z.ZodArray<z.ZodString>;
|
|
81
|
+
deniedProviderClasses: z.ZodArray<z.ZodString>;
|
|
82
|
+
residencyRegions: z.ZodArray<z.ZodString>;
|
|
83
|
+
portabilityMinimum: z.ZodNumber;
|
|
84
|
+
managedServicePosture: z.ZodEnum<{
|
|
85
|
+
allow_managed: "allow_managed";
|
|
86
|
+
prefer_managed: "prefer_managed";
|
|
87
|
+
self_managed_only: "self_managed_only";
|
|
88
|
+
}>;
|
|
89
|
+
requiredCapabilities: z.ZodArray<z.ZodString>;
|
|
90
|
+
deniedCapabilities: z.ZodArray<z.ZodString>;
|
|
91
|
+
nonWaivableRestrictionIds: z.ZodArray<z.ZodString>;
|
|
92
|
+
}, z.core.$strict>>;
|
|
93
|
+
capabilities: z.ZodArray<z.ZodObject<{
|
|
94
|
+
id: z.ZodString;
|
|
95
|
+
kind: z.ZodEnum<{
|
|
96
|
+
cache: "cache";
|
|
97
|
+
ci: "ci";
|
|
98
|
+
compute: "compute";
|
|
99
|
+
database: "database";
|
|
100
|
+
email: "email";
|
|
101
|
+
network: "network";
|
|
102
|
+
object_storage: "object_storage";
|
|
103
|
+
observability: "observability";
|
|
104
|
+
queue: "queue";
|
|
105
|
+
secrets: "secrets";
|
|
106
|
+
}>;
|
|
107
|
+
purpose: z.ZodString;
|
|
108
|
+
requirementIds: z.ZodArray<z.ZodString>;
|
|
109
|
+
dependsOnCapabilityIds: z.ZodArray<z.ZodString>;
|
|
110
|
+
}, z.core.$strict>>;
|
|
111
|
+
architectures: z.ZodArray<z.ZodObject<{
|
|
112
|
+
id: z.ZodString;
|
|
113
|
+
name: z.ZodString;
|
|
114
|
+
workloadEnvelopeId: z.ZodString;
|
|
115
|
+
capabilityIds: z.ZodArray<z.ZodString>;
|
|
116
|
+
restrictionIds: z.ZodArray<z.ZodString>;
|
|
117
|
+
}, z.core.$strict>>;
|
|
118
|
+
bindings: z.ZodArray<z.ZodObject<{
|
|
119
|
+
id: z.ZodString;
|
|
120
|
+
architectureId: z.ZodString;
|
|
121
|
+
capabilityId: z.ZodString;
|
|
122
|
+
environmentId: z.ZodString;
|
|
123
|
+
targetClass: z.ZodString;
|
|
124
|
+
providerClass: z.ZodOptional<z.ZodString>;
|
|
125
|
+
region: z.ZodString;
|
|
126
|
+
evidenceRefs: z.ZodArray<z.ZodString>;
|
|
127
|
+
}, z.core.$strict>>;
|
|
128
|
+
evolutionTriggers: z.ZodArray<z.ZodObject<{
|
|
129
|
+
id: z.ZodString;
|
|
130
|
+
metric: z.ZodString;
|
|
131
|
+
operator: z.ZodEnum<{
|
|
132
|
+
eq: "eq";
|
|
133
|
+
gt: "gt";
|
|
134
|
+
gte: "gte";
|
|
135
|
+
lt: "lt";
|
|
136
|
+
lte: "lte";
|
|
137
|
+
}>;
|
|
138
|
+
threshold: z.ZodNumber;
|
|
139
|
+
observationWindowMinutes: z.ZodNumber;
|
|
140
|
+
action: z.ZodEnum<{
|
|
141
|
+
migrate: "migrate";
|
|
142
|
+
replan: "replan";
|
|
143
|
+
review: "review";
|
|
144
|
+
}>;
|
|
145
|
+
}, z.core.$strict>>;
|
|
146
|
+
evolutionPolicies: z.ZodArray<z.ZodObject<{
|
|
147
|
+
id: z.ZodString;
|
|
148
|
+
architectureId: z.ZodString;
|
|
149
|
+
triggerIds: z.ZodArray<z.ZodString>;
|
|
150
|
+
minimumReviewIntervalDays: z.ZodNumber;
|
|
151
|
+
allowedChangeKinds: z.ZodArray<z.ZodEnum<{
|
|
152
|
+
rebind: "rebind";
|
|
153
|
+
replace: "replace";
|
|
154
|
+
retire: "retire";
|
|
155
|
+
scale: "scale";
|
|
156
|
+
}>>;
|
|
157
|
+
approvalRequirementIds: z.ZodArray<z.ZodString>;
|
|
158
|
+
}, z.core.$strict>>;
|
|
159
|
+
waivers: z.ZodArray<z.ZodObject<{
|
|
160
|
+
id: z.ZodString;
|
|
161
|
+
restrictionId: z.ZodString;
|
|
162
|
+
scope: z.ZodObject<{
|
|
163
|
+
architectureIds: z.ZodArray<z.ZodString>;
|
|
164
|
+
environmentIds: z.ZodArray<z.ZodString>;
|
|
165
|
+
}, z.core.$strict>;
|
|
166
|
+
reason: z.ZodString;
|
|
167
|
+
issuedAt: z.ZodString;
|
|
168
|
+
expiresAt: z.ZodString;
|
|
169
|
+
approvedByRef: z.ZodString;
|
|
170
|
+
inheritedFromWaiverId: z.ZodOptional<z.ZodString>;
|
|
171
|
+
}, z.core.$strict>>;
|
|
172
|
+
candidates: z.ZodArray<z.ZodObject<{
|
|
173
|
+
id: z.ZodString;
|
|
174
|
+
architectureId: z.ZodString;
|
|
175
|
+
bindingIds: z.ZodArray<z.ZodString>;
|
|
176
|
+
satisfiedRequirementIds: z.ZodArray<z.ZodString>;
|
|
177
|
+
hardViolationIds: z.ZodArray<z.ZodString>;
|
|
178
|
+
scores: z.ZodObject<{
|
|
179
|
+
cost: z.ZodNumber;
|
|
180
|
+
reliability: z.ZodNumber;
|
|
181
|
+
performance: z.ZodNumber;
|
|
182
|
+
scalability: z.ZodNumber;
|
|
183
|
+
portability: z.ZodNumber;
|
|
184
|
+
complexity: z.ZodNumber;
|
|
185
|
+
migrationRisk: z.ZodNumber;
|
|
186
|
+
}, z.core.$strict>;
|
|
187
|
+
assumptions: z.ZodArray<z.ZodString>;
|
|
188
|
+
}, z.core.$strict>>;
|
|
189
|
+
comparisons: z.ZodArray<z.ZodObject<{
|
|
190
|
+
id: z.ZodString;
|
|
191
|
+
candidateIds: z.ZodArray<z.ZodString>;
|
|
192
|
+
rejectedCandidateIds: z.ZodArray<z.ZodString>;
|
|
193
|
+
paretoCandidateIds: z.ZodArray<z.ZodString>;
|
|
194
|
+
selectedCandidateId: z.ZodOptional<z.ZodString>;
|
|
195
|
+
rationale: z.ZodString;
|
|
196
|
+
}, z.core.$strict>>;
|
|
197
|
+
adrs: z.ZodArray<z.ZodObject<{
|
|
198
|
+
id: z.ZodString;
|
|
199
|
+
title: z.ZodString;
|
|
200
|
+
status: z.ZodEnum<{
|
|
201
|
+
accepted: "accepted";
|
|
202
|
+
proposed: "proposed";
|
|
203
|
+
rejected: "rejected";
|
|
204
|
+
superseded: "superseded";
|
|
205
|
+
}>;
|
|
206
|
+
comparisonId: z.ZodString;
|
|
207
|
+
selectedCandidateId: z.ZodString;
|
|
208
|
+
requirementIds: z.ZodArray<z.ZodString>;
|
|
209
|
+
consequenceStatements: z.ZodArray<z.ZodString>;
|
|
210
|
+
supersedesAdrId: z.ZodOptional<z.ZodString>;
|
|
211
|
+
decidedAt: z.ZodString;
|
|
212
|
+
}, z.core.$strict>>;
|
|
213
|
+
infrastructurePlans: z.ZodArray<z.ZodObject<{
|
|
214
|
+
id: z.ZodString;
|
|
215
|
+
adrId: z.ZodString;
|
|
216
|
+
architectureId: z.ZodString;
|
|
217
|
+
candidateId: z.ZodString;
|
|
218
|
+
steps: z.ZodArray<z.ZodObject<{
|
|
219
|
+
id: z.ZodString;
|
|
220
|
+
sequence: z.ZodNumber;
|
|
221
|
+
action: z.ZodString;
|
|
222
|
+
bindingIds: z.ZodArray<z.ZodString>;
|
|
223
|
+
prerequisiteStepIds: z.ZodArray<z.ZodString>;
|
|
224
|
+
evidenceRefs: z.ZodArray<z.ZodString>;
|
|
225
|
+
}, z.core.$strict>>;
|
|
226
|
+
rollbackPlanRef: z.ZodString;
|
|
227
|
+
approvalRequirementIds: z.ZodArray<z.ZodString>;
|
|
228
|
+
}, z.core.$strict>>;
|
|
229
|
+
evolutionPlans: z.ZodArray<z.ZodObject<{
|
|
230
|
+
id: z.ZodString;
|
|
231
|
+
evolutionPolicyId: z.ZodString;
|
|
232
|
+
triggerId: z.ZodString;
|
|
233
|
+
fromAdrId: z.ZodString;
|
|
234
|
+
toAdrId: z.ZodString;
|
|
235
|
+
infrastructurePlanId: z.ZodString;
|
|
236
|
+
migrationRisk: z.ZodEnum<{
|
|
237
|
+
critical: "critical";
|
|
238
|
+
high: "high";
|
|
239
|
+
low: "low";
|
|
240
|
+
medium: "medium";
|
|
241
|
+
}>;
|
|
242
|
+
continuityRequirementIds: z.ZodArray<z.ZodString>;
|
|
243
|
+
}, z.core.$strict>>;
|
|
244
|
+
handoffPackets: z.ZodArray<z.ZodObject<{
|
|
245
|
+
id: z.ZodString;
|
|
246
|
+
infrastructurePlanId: z.ZodString;
|
|
247
|
+
recipientRef: z.ZodString;
|
|
248
|
+
contractDigest: z.ZodString;
|
|
249
|
+
artifactRefs: z.ZodArray<z.ZodString>;
|
|
250
|
+
requiredEvidenceRefs: z.ZodArray<z.ZodString>;
|
|
251
|
+
issuedAt: z.ZodString;
|
|
252
|
+
expiresAt: z.ZodString;
|
|
253
|
+
containsCredentials: z.ZodLiteral<false>;
|
|
254
|
+
}, z.core.$strict>>;
|
|
255
|
+
handoffReceipts: z.ZodArray<z.ZodObject<{
|
|
256
|
+
id: z.ZodString;
|
|
257
|
+
packetId: z.ZodString;
|
|
258
|
+
recipientRef: z.ZodString;
|
|
259
|
+
status: z.ZodEnum<{
|
|
260
|
+
accepted: "accepted";
|
|
261
|
+
expired: "expired";
|
|
262
|
+
rejected: "rejected";
|
|
263
|
+
}>;
|
|
264
|
+
receivedDigest: z.ZodString;
|
|
265
|
+
evidenceRefs: z.ZodArray<z.ZodString>;
|
|
266
|
+
receivedAt: z.ZodString;
|
|
267
|
+
}, z.core.$strict>>;
|
|
268
|
+
unsatisfiableReports: z.ZodArray<z.ZodObject<{
|
|
269
|
+
id: z.ZodString;
|
|
270
|
+
requirementIds: z.ZodArray<z.ZodString>;
|
|
271
|
+
candidateViolationIds: z.ZodArray<z.ZodObject<{
|
|
272
|
+
candidateId: z.ZodString;
|
|
273
|
+
violationIds: z.ZodArray<z.ZodString>;
|
|
274
|
+
}, z.core.$strict>>;
|
|
275
|
+
conflictExplanation: z.ZodString;
|
|
276
|
+
resolutionOptions: z.ZodArray<z.ZodString>;
|
|
277
|
+
generatedAt: z.ZodString;
|
|
278
|
+
}, z.core.$strict>>;
|
|
279
|
+
}, z.core.$strict>;
|
|
280
|
+
export type InfrastructureIntentV2 = z.infer<typeof InfrastructureIntentV2Schema>;
|
|
281
|
+
export * from './intent-architecture.js';
|
|
282
|
+
export * from './intent-core.js';
|
|
283
|
+
export * from './intent-decisions.js';
|
|
284
|
+
export * from './intent-plans.js';
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{z as s}from"zod";import{z as t}from"zod";var e=t.string().min(1),w=t.enum(["compute","database","cache","queue","object_storage","email","network","secrets","ci","observability"]),l=t.object({id:e,kind:w,purpose:e,requirementIds:t.array(e),dependsOnCapabilityIds:t.array(e)}).strict(),u=t.object({id:e,name:e,workloadEnvelopeId:e,capabilityIds:t.array(e).min(1),restrictionIds:t.array(e)}).strict(),y=t.object({id:e,architectureId:e,capabilityId:e,environmentId:e,targetClass:e,providerClass:e.optional(),region:e,evidenceRefs:t.array(e)}).strict(),f=t.object({id:e,metric:e,operator:t.enum(["gt","gte","lt","lte","eq"]),threshold:t.number().finite(),observationWindowMinutes:t.number().int().positive(),action:t.enum(["review","replan","migrate"])}).strict(),h=t.object({id:e,architectureId:e,triggerIds:t.array(e).min(1),minimumReviewIntervalDays:t.number().int().nonnegative(),allowedChangeKinds:t.array(t.enum(["scale","rebind","replace","retire"])).min(1),approvalRequirementIds:t.array(e)}).strict(),S=t.object({id:e,restrictionId:e,scope:t.object({architectureIds:t.array(e).min(1),environmentIds:t.array(e).min(1)}).strict(),reason:e,issuedAt:t.string().datetime({offset:!0}),expiresAt:t.string().datetime({offset:!0}),approvedByRef:e,inheritedFromWaiverId:e.optional()}).strict();import{z as r}from"zod";var c=r.string().min(1),m=r.number().finite().nonnegative(),b=r.number().finite().positive(),p=r.number().finite().min(0).max(100),g=r.object({id:c,goalId:c,category:r.enum(["availability","capacity","cost","data","latency","operability","portability","recovery","security"]),description:c,criticality:r.enum(["hard","soft"]),measure:c.optional(),target:r.number().finite().optional(),unit:c.optional()}).strict(),I=r.object({id:c,statement:c,priority:r.enum(["low","medium","high","critical"]),requirementIds:r.array(c).min(1)}).strict(),v=r.object({id:c,concurrentUsers:m,requestsPerSecond:m,burstMultiplier:b,latencyP95Ms:b,availabilityPercent:p,dataVolumeGb:m,monthlyDataGrowthPercent:p,storageGb:m,monthlyEgressGb:m,backgroundJobsPerHour:m,rpoMinutes:m,rtoMinutes:m,regions:r.array(c).min(1),forecastMonths:r.number().int().positive(),annualTrafficGrowthPercent:p}).strict(),x=r.object({id:c,requirementId:c.optional(),scopeIds:r.array(c).min(1),kind:r.enum(["capability","compliance","cost","network","operability","residency","technology"]),rule:c,severity:r.enum(["hard","soft"]),rationale:c}).strict(),P=r.object({id:c,allowedProviderClasses:r.array(c),deniedProviderClasses:r.array(c),residencyRegions:r.array(c).min(1),portabilityMinimum:r.number().int().min(0).max(100),managedServicePosture:r.enum(["prefer_managed","allow_managed","self_managed_only"]),requiredCapabilities:r.array(c),deniedCapabilities:r.array(c),nonWaivableRestrictionIds:r.array(c)}).strict();import{z as o}from"zod";var a=o.string().min(1),d=o.number().finite().min(0).max(100),O=o.object({cost:d,reliability:d,performance:d,scalability:d,portability:d,complexity:d,migrationRisk:d}).strict(),R=o.object({id:a,architectureId:a,bindingIds:o.array(a).min(1),satisfiedRequirementIds:o.array(a),hardViolationIds:o.array(a),scores:O,assumptions:o.array(a)}).strict(),A=o.object({id:a,candidateIds:o.array(a).min(1),rejectedCandidateIds:o.array(a),paretoCandidateIds:o.array(a),selectedCandidateId:a.optional(),rationale:a}).strict(),C=o.object({id:a,title:a,status:o.enum(["proposed","accepted","superseded","rejected"]),comparisonId:a,selectedCandidateId:a,requirementIds:o.array(a).min(1),consequenceStatements:o.array(a).min(1),supersedesAdrId:a.optional(),decidedAt:o.string().datetime({offset:!0})}).strict(),j=o.object({id:a,requirementIds:o.array(a).min(1),candidateViolationIds:o.array(o.object({candidateId:a,violationIds:o.array(a).min(1)}).strict()).min(1),conflictExplanation:a,resolutionOptions:o.array(a).min(1),generatedAt:o.string().datetime({offset:!0})}).strict();import{z as n}from"zod";var i=n.string().min(1),W=n.object({id:i,sequence:n.number().int().positive(),action:i,bindingIds:n.array(i),prerequisiteStepIds:n.array(i),evidenceRefs:n.array(i)}).strict(),z=n.object({id:i,adrId:i,architectureId:i,candidateId:i,steps:n.array(W).min(1),rollbackPlanRef:i,approvalRequirementIds:n.array(i)}).strict(),q=n.object({id:i,evolutionPolicyId:i,triggerId:i,fromAdrId:i,toAdrId:i,infrastructurePlanId:i,migrationRisk:n.enum(["low","medium","high","critical"]),continuityRequirementIds:n.array(i).min(1)}).strict(),E=n.object({id:i,infrastructurePlanId:i,recipientRef:i,contractDigest:n.string().regex(/^sha256:[a-f0-9]{64}$/),artifactRefs:n.array(i).min(1),requiredEvidenceRefs:n.array(i),issuedAt:n.string().datetime({offset:!0}),expiresAt:n.string().datetime({offset:!0}),containsCredentials:n.literal(!1)}).strict(),k=n.object({id:i,packetId:i,recipientRef:i,status:n.enum(["accepted","rejected","expired"]),receivedDigest:n.string().regex(/^sha256:[a-f0-9]{64}$/),evidenceRefs:n.array(i),receivedAt:n.string().datetime({offset:!0})}).strict();var J=s.object({id:s.string().min(1),version:s.literal("2.0.0"),goals:s.array(I).min(1),requirements:s.array(g).min(1),workloadEnvelopes:s.array(v).min(1),restrictions:s.array(x),providerPolicies:s.array(P).min(1),capabilities:s.array(l).min(1),architectures:s.array(u).min(1),bindings:s.array(y),evolutionTriggers:s.array(f),evolutionPolicies:s.array(h),waivers:s.array(S),candidates:s.array(R).min(1),comparisons:s.array(A),adrs:s.array(C),infrastructurePlans:s.array(z),evolutionPlans:s.array(q),handoffPackets:s.array(E),handoffReceipts:s.array(k),unsatisfiableReports:s.array(j)}).strict();export{R as ArchitectureCandidateSchema,A as ArchitectureComparisonSchema,C as ArchitectureDecisionRecordSchema,q as ArchitectureEvolutionPlanSchema,O as ArchitectureScoreSchema,S as ConstraintWaiverSchema,h as EvolutionPolicySchema,f as EvolutionTriggerSchema,w as InfrastructureCapabilityKindSchema,E as InfrastructureHandoffPacketSchema,k as InfrastructureHandoffReceiptSchema,J as InfrastructureIntentV2Schema,z as InfrastructurePlanSchema,u as LogicalArchitectureSchema,l as LogicalCapabilitySchema,y as OperationalBindingSchema,I as OperationalGoalSchema,g as OperationalRequirementSchema,x as PlatformRestrictionSchema,P as ProviderPolicySchema,j as UnsatisfiableRequirementReportSchema,v as WorkloadEnvelopeSchema};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
function u(i){return new Set(i.map(({id:e})=>e))}function f(i,e,t,n,s){for(let r of e)d(i,r,t,n,s)}function d(i,e,t,n,s){if(!i.has(e))s.push({code:"missing_reference",message:`${t} references missing ${n} ${e}.`})}function c(i,e){for(let[t,n]of Object.entries(i)){if(!Array.isArray(n))continue;let s=new Set;for(let r of n){if(!a(r))continue;if(s.has(r.id))e.push(o("duplicate_id",`${t} contains duplicate id ${r.id}.`));s.add(r.id)}}}function o(i,e){return{code:i,message:e}}function a(i){return typeof i==="object"&&i!==null&&"id"in i&&typeof i.id==="string"}function g(i,e){for(let t of i.bindings)for(let n of i.providerPolicies){if(t.providerClass&&(n.deniedProviderClasses.includes(t.providerClass)||n.allowedProviderClasses.length>0&&!n.allowedProviderClasses.includes(t.providerClass)))e.push(o("provider_denied",`${t.id} uses provider class denied by ${n.id}.`));if(!n.residencyRegions.includes(t.region))e.push(o("residency_denied",`${t.id} uses region outside ${n.id}.`))}}export{g as validateBindings};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { InfrastructureIntentV2 } from './intent-types.js';
|
|
2
|
+
export interface IntentValidationIssue {
|
|
3
|
+
code: string;
|
|
4
|
+
message: string;
|
|
5
|
+
path?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function validateIntentReferences(spec: InfrastructureIntentV2): IntentValidationIssue[];
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
function r(e){return new Set(e.map(({id:i})=>i))}function o(e,i,c,s,d){for(let a of i)n(e,a,c,s,d)}function n(e,i,c,s,d){if(!e.has(i))d.push({code:"missing_reference",message:`${c} references missing ${s} ${i}.`})}function k(e,i){for(let[c,s]of Object.entries(e)){if(!Array.isArray(s))continue;let d=new Set;for(let a of s){if(!R(a))continue;if(d.has(a.id))i.push(V("duplicate_id",`${c} contains duplicate id ${a.id}.`));d.add(a.id)}}}function V(e,i){return{code:e,message:i}}function R(e){return typeof e==="object"&&e!==null&&"id"in e&&typeof e.id==="string"}function A(e){let i=[],c=r(e.goals),s=r(e.requirements),d=r(e.workloadEnvelopes),a=r(e.restrictions),l=r(e.capabilities),u=r(e.architectures),p=r(e.bindings),g=r(e.evolutionTriggers),h=r(e.evolutionPolicies),f=r(e.candidates),q=r(e.comparisons),I=r(e.adrs),m=r(e.infrastructurePlans),y=r(e.handoffPackets),v=new Set([...s,...a]);for(let t of e.requirements)n(c,t.goalId,t.id,"goal",i);for(let t of e.restrictions)if(t.requirementId)n(s,t.requirementId,t.id,"requirement",i);for(let t of e.goals)o(s,t.requirementIds,t.id,"requirement",i);for(let t of e.capabilities)o(s,t.requirementIds,t.id,"requirement",i),o(l,t.dependsOnCapabilityIds,t.id,"capability",i);for(let t of e.architectures)n(d,t.workloadEnvelopeId,t.id,"workload envelope",i),o(l,t.capabilityIds,t.id,"capability",i),o(a,t.restrictionIds,t.id,"restriction",i);for(let t of e.bindings)n(u,t.architectureId,t.id,"architecture",i),n(l,t.capabilityId,t.id,"capability",i);for(let t of e.evolutionPolicies)n(u,t.architectureId,t.id,"architecture",i),o(g,t.triggerIds,t.id,"trigger",i);for(let t of e.waivers)n(a,t.restrictionId,t.id,"restriction",i),o(u,t.scope.architectureIds,t.id,"architecture",i);for(let t of e.candidates)n(u,t.architectureId,t.id,"architecture",i),o(p,t.bindingIds,t.id,"binding",i),o(s,t.satisfiedRequirementIds,t.id,"requirement",i),o(v,t.hardViolationIds,t.id,"hard violation target",i);for(let t of e.comparisons)o(f,t.candidateIds,t.id,"candidate",i);for(let t of e.adrs)n(q,t.comparisonId,t.id,"comparison",i),n(f,t.selectedCandidateId,t.id,"candidate",i),o(s,t.requirementIds,t.id,"requirement",i);for(let t of e.infrastructurePlans)n(I,t.adrId,t.id,"ADR",i),n(u,t.architectureId,t.id,"architecture",i),n(f,t.candidateId,t.id,"candidate",i);for(let t of e.evolutionPlans)n(h,t.evolutionPolicyId,t.id,"evolution policy",i),n(m,t.infrastructurePlanId,t.id,"infrastructure plan",i),n(g,t.triggerId,t.id,"trigger",i),n(I,t.fromAdrId,t.id,"ADR",i),n(I,t.toAdrId,t.id,"ADR",i);for(let t of e.handoffPackets)n(m,t.infrastructurePlanId,t.id,"infrastructure plan",i);for(let t of e.handoffReceipts)n(y,t.packetId,t.id,"handoff packet",i);for(let t of e.unsatisfiableReports)o(s,t.requirementIds,t.id,"requirement",i),o(f,t.candidateViolationIds.map(({candidateId:b})=>b),t.id,"candidate",i);return i}export{A as validateIntentReferences};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var c=["cost","complexity","migrationRisk"],f=["reliability","performance","scalability","portability"];function u(e){let t=[...e].sort((n,o)=>n.id.localeCompare(o.id)),s=t.filter((n)=>n.hardViolationIds.length),i=t.filter((n)=>!n.hardViolationIds.length),r=i.filter((n)=>!i.some((o)=>o.id!==n.id&&g(o,n)));return{eligibleCandidateIds:i.map(({id:n})=>n),rejectedCandidateIds:s.map(({id:n})=>n),paretoCandidateIds:r.map(({id:n})=>n)}}function g(e,t){let s=c.every((o)=>e.scores[o]<=t.scores[o]),i=f.every((o)=>e.scores[o]>=t.scores[o]),r=c.some((o)=>e.scores[o]<t.scores[o]),n=f.some((o)=>e.scores[o]>t.scores[o]);return s&&i&&(r||n)}function _(e){return new Set(e.map(({id:t})=>t))}function M(e,t,s,i,r){for(let n of t)h(e,n,s,i,r)}function h(e,t,s,i,r){if(!e.has(t))r.push({code:"missing_reference",message:`${s} references missing ${i} ${t}.`})}function l(e,t){for(let[s,i]of Object.entries(e)){if(!Array.isArray(i))continue;let r=new Set;for(let n of i){if(!y(n))continue;if(r.has(n.id))t.push(a("duplicate_id",`${s} contains duplicate id ${n.id}.`));r.add(n.id)}}}function a(e,t){return{code:e,message:t}}function y(e){return typeof e==="object"&&e!==null&&"id"in e&&typeof e.id==="string"}function p(e,t){for(let s of e.bindings)for(let i of e.providerPolicies){if(s.providerClass&&(i.deniedProviderClasses.includes(s.providerClass)||i.allowedProviderClasses.length>0&&!i.allowedProviderClasses.includes(s.providerClass)))t.push(a("provider_denied",`${s.id} uses provider class denied by ${i.id}.`));if(!i.residencyRegions.includes(s.region))t.push(a("residency_denied",`${s.id} uses region outside ${i.id}.`))}}function k(e){let t=[];return C(e,t),p(e,t),b(e,t),V(e,t),w(e,t),x(e,t),l(e,t),t}function C(e,t){for(let s of e.providerPolicies){I(s.allowedProviderClasses,s.deniedProviderClasses,s.id,"provider class",t),I(s.requiredCapabilities,s.deniedCapabilities,s.id,"capability",t);let i=new Set(e.restrictions.map(({id:r})=>r));for(let r of s.nonWaivableRestrictionIds)if(!i.has(r))t.push(a("missing_reference",`${s.id} references missing restriction ${r}.`))}}function b(e,t){let s=new Map(e.waivers.map((r)=>[r.id,r])),i=new Set(e.providerPolicies.flatMap(({nonWaivableRestrictionIds:r})=>r));for(let r of e.waivers){if(i.has(r.restrictionId))t.push(a("non_waivable",`${r.id} targets non-waivable restriction ${r.restrictionId}.`));if(Date.parse(r.expiresAt)<=Date.parse(r.issuedAt))t.push(a("invalid_expiry",`${r.id} must expire after issuance.`));if(!r.inheritedFromWaiverId)continue;let n=s.get(r.inheritedFromWaiverId);if(!n){t.push(a("missing_reference",`${r.id} references missing parent waiver.`));continue}if(n.restrictionId!==r.restrictionId)t.push(a("waiver_broadened",`${r.id} must inherit the same restriction.`));if(Date.parse(r.expiresAt)>Date.parse(n.expiresAt))t.push(a("waiver_broadened",`${r.id} may not outlive parent ${n.id}.`));if(!m(r.scope.architectureIds,n.scope.architectureIds)||!m(r.scope.environmentIds,n.scope.environmentIds))t.push(a("waiver_broadened",`${r.id} may only tighten parent ${n.id} scope.`))}}function V(e,t){let s=new Map(e.candidates.map((i)=>[i.id,i]));for(let i of e.comparisons){let r=i.candidateIds.flatMap((o)=>{let d=s.get(o);return d?[d]:[]}),n=u(r);if(!v(n.rejectedCandidateIds,i.rejectedCandidateIds))t.push(a("comparison_mismatch",`${i.id} hard-violation rejection is not deterministic.`));if(!v(n.paretoCandidateIds,i.paretoCandidateIds))t.push(a("comparison_mismatch",`${i.id} Pareto frontier is not deterministic.`));if(i.selectedCandidateId&&!n.paretoCandidateIds.includes(i.selectedCandidateId))t.push(a("invalid_selection",`${i.id} must select from its Pareto frontier.`))}}function w(e,t){let s=new Set(e.unsatisfiableReports.flatMap(({candidateViolationIds:n})=>n.map(({candidateId:o})=>o))),i=new Set(e.comparisons.flatMap(({candidateIds:n})=>n)),r=e.candidates.filter(({id:n})=>i.has(n)).every(({hardViolationIds:n})=>n.length>0);if(i.size>0&&r){for(let n of i)if(!s.has(n))t.push(a("unsatisfiable_report_required",`Hard-invalid candidate ${n} requires an unsatisfiable report.`))}}function x(e,t){let s=new Map(e.handoffPackets.map((i)=>[i.id,i]));for(let i of e.handoffPackets)if(Date.parse(i.expiresAt)<=Date.parse(i.issuedAt))t.push(a("invalid_expiry",`${i.id} must expire after issuance.`));for(let i of e.handoffReceipts){let r=s.get(i.packetId);if(r&&i.receivedDigest!==r.contractDigest)t.push(a("digest_mismatch",`${i.id} does not acknowledge packet digest.`))}}function I(e,t,s,i,r){for(let n of e)if(t.includes(n))r.push(a("policy_conflict",`${s} both allows/requires and denies ${i} ${n}.`))}function m(e,t){return e.every((s)=>t.includes(s))}function v(e,t){return e.length===t.length&&e.every((s,i)=>s===t[i])}export{k as validateIntentRules};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { InfrastructureIntentV2 } from './intent-types.js';
|
|
2
|
+
import type { IntentValidationIssue } from './intent-validation-refs.js';
|
|
3
|
+
export declare function ids(items: ReadonlyArray<{
|
|
4
|
+
id: string;
|
|
5
|
+
}>): Set<string>;
|
|
6
|
+
export declare function requireRefs(known: Set<string>, refs: readonly string[], owner: string, kind: string, issues: IntentValidationIssue[]): void;
|
|
7
|
+
export declare function requireRef(known: Set<string>, ref: string, owner: string, kind: string, issues: IntentValidationIssue[]): void;
|
|
8
|
+
export declare function validateUniqueIds(spec: InfrastructureIntentV2, issues: IntentValidationIssue[]): void;
|
|
9
|
+
export declare function issue(code: string, message: string): IntentValidationIssue;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
function u(n){return new Set(n.map(({id:t})=>t))}function f(n,t,s,i,e){for(let r of t)o(n,r,s,i,e)}function o(n,t,s,i,e){if(!n.has(t))e.push({code:"missing_reference",message:`${s} references missing ${i} ${t}.`})}function c(n,t){for(let[s,i]of Object.entries(n)){if(!Array.isArray(i))continue;let e=new Set;for(let r of i){if(!d(r))continue;if(e.has(r.id))t.push(a("duplicate_id",`${s} contains duplicate id ${r.id}.`));e.add(r.id)}}}function a(n,t){return{code:n,message:t}}function d(n){return typeof n==="object"&&n!==null&&"id"in n&&typeof n.id==="string"}export{u as ids,a as issue,o as requireRef,f as requireRefs,c as validateUniqueIds};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type IntentValidationIssue } from './intent-validation-refs.js';
|
|
2
|
+
export { type IntentValidationIssue } from './intent-validation-refs.js';
|
|
3
|
+
export declare class InfrastructureIntentValidationError extends Error {
|
|
4
|
+
readonly issues: IntentValidationIssue[];
|
|
5
|
+
constructor(issues: IntentValidationIssue[]);
|
|
6
|
+
}
|
|
7
|
+
/** Perform strict structural, reference, policy, waiver, and decision validation. */
|
|
8
|
+
export declare function validateInfrastructureIntentV2(input: unknown): IntentValidationIssue[];
|
|
9
|
+
/** Throw when any V2 structural or semantic invariant fails. */
|
|
10
|
+
export declare function assertInfrastructureIntentV2Valid(input: unknown): void;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
import{z as y}from"zod";import{z as c}from"zod";var s=c.string().min(1),me=c.enum(["compute","database","cache","queue","object_storage","email","network","secrets","ci","observability"]),w=c.object({id:s,kind:me,purpose:s,requirementIds:c.array(s),dependsOnCapabilityIds:c.array(s)}).strict(),k=c.object({id:s,name:s,workloadEnvelopeId:s,capabilityIds:c.array(s).min(1),restrictionIds:c.array(s)}).strict(),_=c.object({id:s,architectureId:s,capabilityId:s,environmentId:s,targetClass:s,providerClass:s.optional(),region:s,evidenceRefs:c.array(s)}).strict(),j=c.object({id:s,metric:s,operator:c.enum(["gt","gte","lt","lte","eq"]),threshold:c.number().finite(),observationWindowMinutes:c.number().int().positive(),action:c.enum(["review","replan","migrate"])}).strict(),z=c.object({id:s,architectureId:s,triggerIds:c.array(s).min(1),minimumReviewIntervalDays:c.number().int().nonnegative(),allowedChangeKinds:c.array(c.enum(["scale","rebind","replace","retire"])).min(1),approvalRequirementIds:c.array(s)}).strict(),E=c.object({id:s,restrictionId:s,scope:c.object({architectureIds:c.array(s).min(1),environmentIds:c.array(s).min(1)}).strict(),reason:s,issuedAt:c.string().datetime({offset:!0}),expiresAt:c.string().datetime({offset:!0}),approvedByRef:s,inheritedFromWaiverId:s.optional()}).strict();import{z as d}from"zod";var I=d.string().min(1),x=d.number().finite().nonnegative(),M=d.number().finite().positive(),A=d.number().finite().min(0).max(100),D=d.object({id:I,goalId:I,category:d.enum(["availability","capacity","cost","data","latency","operability","portability","recovery","security"]),description:I,criticality:d.enum(["hard","soft"]),measure:I.optional(),target:d.number().finite().optional(),unit:I.optional()}).strict(),O=d.object({id:I,statement:I,priority:d.enum(["low","medium","high","critical"]),requirementIds:d.array(I).min(1)}).strict(),W=d.object({id:I,concurrentUsers:x,requestsPerSecond:x,burstMultiplier:M,latencyP95Ms:M,availabilityPercent:A,dataVolumeGb:x,monthlyDataGrowthPercent:A,storageGb:x,monthlyEgressGb:x,backgroundJobsPerHour:x,rpoMinutes:x,rtoMinutes:x,regions:d.array(I).min(1),forecastMonths:d.number().int().positive(),annualTrafficGrowthPercent:A}).strict(),H=d.object({id:I,requirementId:I.optional(),scopeIds:d.array(I).min(1),kind:d.enum(["capability","compliance","cost","network","operability","residency","technology"]),rule:I,severity:d.enum(["hard","soft"]),rationale:I}).strict(),G=d.object({id:I,allowedProviderClasses:d.array(I),deniedProviderClasses:d.array(I),residencyRegions:d.array(I).min(1),portabilityMinimum:d.number().int().min(0).max(100),managedServicePosture:d.enum(["prefer_managed","allow_managed","self_managed_only"]),requiredCapabilities:d.array(I),deniedCapabilities:d.array(I),nonWaivableRestrictionIds:d.array(I)}).strict();import{z as f}from"zod";var l=f.string().min(1),P=f.number().finite().min(0).max(100),Ie=f.object({cost:P,reliability:P,performance:P,scalability:P,portability:P,complexity:P,migrationRisk:P}).strict(),T=f.object({id:l,architectureId:l,bindingIds:f.array(l).min(1),satisfiedRequirementIds:f.array(l),hardViolationIds:f.array(l),scores:Ie,assumptions:f.array(l)}).strict(),L=f.object({id:l,candidateIds:f.array(l).min(1),rejectedCandidateIds:f.array(l),paretoCandidateIds:f.array(l),selectedCandidateId:l.optional(),rationale:l}).strict(),U=f.object({id:l,title:l,status:f.enum(["proposed","accepted","superseded","rejected"]),comparisonId:l,selectedCandidateId:l,requirementIds:f.array(l).min(1),consequenceStatements:f.array(l).min(1),supersedesAdrId:l.optional(),decidedAt:f.string().datetime({offset:!0})}).strict(),B=f.object({id:l,requirementIds:f.array(l).min(1),candidateViolationIds:f.array(f.object({candidateId:l,violationIds:f.array(l).min(1)}).strict()).min(1),conflictExplanation:l,resolutionOptions:f.array(l).min(1),generatedAt:f.string().datetime({offset:!0})}).strict();import{z as m}from"zod";var u=m.string().min(1),ye=m.object({id:u,sequence:m.number().int().positive(),action:u,bindingIds:m.array(u),prerequisiteStepIds:m.array(u),evidenceRefs:m.array(u)}).strict(),N=m.object({id:u,adrId:u,architectureId:u,candidateId:u,steps:m.array(ye).min(1),rollbackPlanRef:u,approvalRequirementIds:m.array(u)}).strict(),F=m.object({id:u,evolutionPolicyId:u,triggerId:u,fromAdrId:u,toAdrId:u,infrastructurePlanId:u,migrationRisk:m.enum(["low","medium","high","critical"]),continuityRequirementIds:m.array(u).min(1)}).strict(),K=m.object({id:u,infrastructurePlanId:u,recipientRef:u,contractDigest:m.string().regex(/^sha256:[a-f0-9]{64}$/),artifactRefs:m.array(u).min(1),requiredEvidenceRefs:m.array(u),issuedAt:m.string().datetime({offset:!0}),expiresAt:m.string().datetime({offset:!0}),containsCredentials:m.literal(!1)}).strict(),J=m.object({id:u,packetId:u,recipientRef:u,status:m.enum(["accepted","rejected","expired"]),receivedDigest:m.string().regex(/^sha256:[a-f0-9]{64}$/),evidenceRefs:m.array(u),receivedAt:m.string().datetime({offset:!0})}).strict();var Z=y.object({id:y.string().min(1),version:y.literal("2.0.0"),goals:y.array(O).min(1),requirements:y.array(D).min(1),workloadEnvelopes:y.array(W).min(1),restrictions:y.array(H),providerPolicies:y.array(G).min(1),capabilities:y.array(w).min(1),architectures:y.array(k).min(1),bindings:y.array(_),evolutionTriggers:y.array(j),evolutionPolicies:y.array(z),waivers:y.array(E),candidates:y.array(T).min(1),comparisons:y.array(L),adrs:y.array(U),infrastructurePlans:y.array(N),evolutionPlans:y.array(F),handoffPackets:y.array(K),handoffReceipts:y.array(J),unsatisfiableReports:y.array(B)}).strict();function v(t){return new Set(t.map(({id:e})=>e))}function b(t,e,o,r,a){for(let n of e)h(t,n,o,r,a)}function h(t,e,o,r,a){if(!t.has(e))a.push({code:"missing_reference",message:`${o} references missing ${r} ${e}.`})}function X(t,e){for(let[o,r]of Object.entries(t)){if(!Array.isArray(r))continue;let a=new Set;for(let n of r){if(!he(n))continue;if(a.has(n.id))e.push(g("duplicate_id",`${o} contains duplicate id ${n.id}.`));a.add(n.id)}}}function g(t,e){return{code:t,message:e}}function he(t){return typeof t==="object"&&t!==null&&"id"in t&&typeof t.id==="string"}function Q(t){let e=[],o=v(t.goals),r=v(t.requirements),a=v(t.workloadEnvelopes),n=v(t.restrictions),p=v(t.capabilities),S=v(t.architectures),ce=v(t.bindings),q=v(t.evolutionTriggers),de=v(t.evolutionPolicies),C=v(t.candidates),ue=v(t.comparisons),R=v(t.adrs),V=v(t.infrastructurePlans),le=v(t.handoffPackets),pe=new Set([...r,...n]);for(let i of t.requirements)h(o,i.goalId,i.id,"goal",e);for(let i of t.restrictions)if(i.requirementId)h(r,i.requirementId,i.id,"requirement",e);for(let i of t.goals)b(r,i.requirementIds,i.id,"requirement",e);for(let i of t.capabilities)b(r,i.requirementIds,i.id,"requirement",e),b(p,i.dependsOnCapabilityIds,i.id,"capability",e);for(let i of t.architectures)h(a,i.workloadEnvelopeId,i.id,"workload envelope",e),b(p,i.capabilityIds,i.id,"capability",e),b(n,i.restrictionIds,i.id,"restriction",e);for(let i of t.bindings)h(S,i.architectureId,i.id,"architecture",e),h(p,i.capabilityId,i.id,"capability",e);for(let i of t.evolutionPolicies)h(S,i.architectureId,i.id,"architecture",e),b(q,i.triggerIds,i.id,"trigger",e);for(let i of t.waivers)h(n,i.restrictionId,i.id,"restriction",e),b(S,i.scope.architectureIds,i.id,"architecture",e);for(let i of t.candidates)h(S,i.architectureId,i.id,"architecture",e),b(ce,i.bindingIds,i.id,"binding",e),b(r,i.satisfiedRequirementIds,i.id,"requirement",e),b(pe,i.hardViolationIds,i.id,"hard violation target",e);for(let i of t.comparisons)b(C,i.candidateIds,i.id,"candidate",e);for(let i of t.adrs)h(ue,i.comparisonId,i.id,"comparison",e),h(C,i.selectedCandidateId,i.id,"candidate",e),b(r,i.requirementIds,i.id,"requirement",e);for(let i of t.infrastructurePlans)h(R,i.adrId,i.id,"ADR",e),h(S,i.architectureId,i.id,"architecture",e),h(C,i.candidateId,i.id,"candidate",e);for(let i of t.evolutionPlans)h(de,i.evolutionPolicyId,i.id,"evolution policy",e),h(V,i.infrastructurePlanId,i.id,"infrastructure plan",e),h(q,i.triggerId,i.id,"trigger",e),h(R,i.fromAdrId,i.id,"ADR",e),h(R,i.toAdrId,i.id,"ADR",e);for(let i of t.handoffPackets)h(V,i.infrastructurePlanId,i.id,"infrastructure plan",e);for(let i of t.handoffReceipts)h(le,i.packetId,i.id,"handoff packet",e);for(let i of t.unsatisfiableReports)b(r,i.requirementIds,i.id,"requirement",e),b(C,i.candidateViolationIds.map(({candidateId:fe})=>fe),i.id,"candidate",e);return e}var Y=["cost","complexity","migrationRisk"],ee=["reliability","performance","scalability","portability"];function te(t){let e=[...t].sort((n,p)=>n.id.localeCompare(p.id)),o=e.filter((n)=>n.hardViolationIds.length),r=e.filter((n)=>!n.hardViolationIds.length),a=r.filter((n)=>!r.some((p)=>p.id!==n.id&&ge(p,n)));return{eligibleCandidateIds:r.map(({id:n})=>n),rejectedCandidateIds:o.map(({id:n})=>n),paretoCandidateIds:a.map(({id:n})=>n)}}function ge(t,e){let o=Y.every((p)=>t.scores[p]<=e.scores[p]),r=ee.every((p)=>t.scores[p]>=e.scores[p]),a=Y.some((p)=>t.scores[p]<e.scores[p]),n=ee.some((p)=>t.scores[p]>e.scores[p]);return o&&r&&(a||n)}function ie(t,e){for(let o of t.bindings)for(let r of t.providerPolicies){if(o.providerClass&&(r.deniedProviderClasses.includes(o.providerClass)||r.allowedProviderClasses.length>0&&!r.allowedProviderClasses.includes(o.providerClass)))e.push(g("provider_denied",`${o.id} uses provider class denied by ${r.id}.`));if(!r.residencyRegions.includes(o.region))e.push(g("residency_denied",`${o.id} uses region outside ${r.id}.`))}}function oe(t){let e=[];return ve(t,e),ie(t,e),be(t,e),Se(t,e),xe(t,e),Pe(t,e),X(t,e),e}function ve(t,e){for(let o of t.providerPolicies){re(o.allowedProviderClasses,o.deniedProviderClasses,o.id,"provider class",e),re(o.requiredCapabilities,o.deniedCapabilities,o.id,"capability",e);let r=new Set(t.restrictions.map(({id:a})=>a));for(let a of o.nonWaivableRestrictionIds)if(!r.has(a))e.push(g("missing_reference",`${o.id} references missing restriction ${a}.`))}}function be(t,e){let o=new Map(t.waivers.map((a)=>[a.id,a])),r=new Set(t.providerPolicies.flatMap(({nonWaivableRestrictionIds:a})=>a));for(let a of t.waivers){if(r.has(a.restrictionId))e.push(g("non_waivable",`${a.id} targets non-waivable restriction ${a.restrictionId}.`));if(Date.parse(a.expiresAt)<=Date.parse(a.issuedAt))e.push(g("invalid_expiry",`${a.id} must expire after issuance.`));if(!a.inheritedFromWaiverId)continue;let n=o.get(a.inheritedFromWaiverId);if(!n){e.push(g("missing_reference",`${a.id} references missing parent waiver.`));continue}if(n.restrictionId!==a.restrictionId)e.push(g("waiver_broadened",`${a.id} must inherit the same restriction.`));if(Date.parse(a.expiresAt)>Date.parse(n.expiresAt))e.push(g("waiver_broadened",`${a.id} may not outlive parent ${n.id}.`));if(!ne(a.scope.architectureIds,n.scope.architectureIds)||!ne(a.scope.environmentIds,n.scope.environmentIds))e.push(g("waiver_broadened",`${a.id} may only tighten parent ${n.id} scope.`))}}function Se(t,e){let o=new Map(t.candidates.map((r)=>[r.id,r]));for(let r of t.comparisons){let a=r.candidateIds.flatMap((p)=>{let S=o.get(p);return S?[S]:[]}),n=te(a);if(!ae(n.rejectedCandidateIds,r.rejectedCandidateIds))e.push(g("comparison_mismatch",`${r.id} hard-violation rejection is not deterministic.`));if(!ae(n.paretoCandidateIds,r.paretoCandidateIds))e.push(g("comparison_mismatch",`${r.id} Pareto frontier is not deterministic.`));if(r.selectedCandidateId&&!n.paretoCandidateIds.includes(r.selectedCandidateId))e.push(g("invalid_selection",`${r.id} must select from its Pareto frontier.`))}}function xe(t,e){let o=new Set(t.unsatisfiableReports.flatMap(({candidateViolationIds:n})=>n.map(({candidateId:p})=>p))),r=new Set(t.comparisons.flatMap(({candidateIds:n})=>n)),a=t.candidates.filter(({id:n})=>r.has(n)).every(({hardViolationIds:n})=>n.length>0);if(r.size>0&&a){for(let n of r)if(!o.has(n))e.push(g("unsatisfiable_report_required",`Hard-invalid candidate ${n} requires an unsatisfiable report.`))}}function Pe(t,e){let o=new Map(t.handoffPackets.map((r)=>[r.id,r]));for(let r of t.handoffPackets)if(Date.parse(r.expiresAt)<=Date.parse(r.issuedAt))e.push(g("invalid_expiry",`${r.id} must expire after issuance.`));for(let r of t.handoffReceipts){let a=o.get(r.packetId);if(a&&r.receivedDigest!==a.contractDigest)e.push(g("digest_mismatch",`${r.id} does not acknowledge packet digest.`))}}function re(t,e,o,r,a){for(let n of t)if(e.includes(n))a.push(g("policy_conflict",`${o} both allows/requires and denies ${r} ${n}.`))}function ne(t,e){return t.every((o)=>e.includes(o))}function ae(t,e){return t.length===e.length&&t.every((o,r)=>o===e[r])}var Ce=/(?:api[_-]?key|client[_-]?secret|private[_-]?key|password|bearer\s+|sk-[a-z0-9]|ghp_[a-z0-9])/i,Re=/(?:aws_access_key|service_account_json|azure_client_secret|provider[_-]?config|kubeconfig)/i;class se extends Error{issues;constructor(t){super("Infrastructure intent V2 is invalid");this.issues=t;this.name="InfrastructureIntentValidationError"}}function Ae(t){let e=Z.safeParse(t);if(!e.success)return e.error.issues.map((a)=>({code:"schema_invalid",message:a.message,path:a.path.join(".")}));let o=[...Q(e.data),...oe(e.data)],r=JSON.stringify(e.data);if(Ce.test(r))o.push({code:"secret_material",message:"Infrastructure intent must not contain credentials or secret values."});if(Re.test(r))o.push({code:"provider_config",message:"Infrastructure intent must not contain provider configuration material."});return o}function nt(t){let e=Ae(t);if(e.length>0)throw new se(e)}export{se as InfrastructureIntentValidationError,nt as assertInfrastructureIntentV2Valid,Ae as validateInfrastructureIntentV2};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={id:"owner_platform_ops",kind:"companyos_owner"},r={id:"policy_gate_production_release",kind:"companyos_policy_gate"},t={id:"infra_ops_deployment_release_loop",version:"1.0.0",environments:[{id:"env_production",name:"Production",tier:"production",ownerRef:e}],runtimeTargets:[{id:"runtime_web_edge",type:"web",capabilityRefs:[{id:"capability_static_web_runtime",kind:"integration_capability"}]}],services:[{id:"service_customer_portal",name:"Customer portal",runtimeTargetId:"runtime_web_edge",ownerRef:e}],pipelines:[{id:"pipeline_customer_portal_release",jobScheduleRef:{id:"job_release_pipeline",kind:"job_schedule"},capabilityRefs:[{id:"capability_release_artifact",kind:"integration_capability"}],ownerRef:e}],migrationWindows:[{id:"migration_customer_portal_content",serviceId:"service_customer_portal",windowRef:"window:2026-05-09T20:00:00Z/PT1H",rollbackRef:{id:"rollback_customer_portal",kind:"progressive_delivery_rollback"},ownerRef:e,evidenceReceiptIds:["evidence_migration_plan"]}],deployments:[{id:"deployment_customer_portal_v2",environmentId:"env_production",serviceId:"service_customer_portal",pipelineId:"pipeline_customer_portal_release",rolloutRef:{id:"rollout_customer_portal_canary",kind:"progressive_delivery_rollout"},rollbackRef:{id:"rollback_customer_portal",kind:"progressive_delivery_rollback"},approvalRequirementId:"approval_customer_portal_release",healthCheckIds:["health_customer_portal","ready_customer_portal","live_customer_portal"],sloIds:["slo_customer_portal_availability"],evidenceReceiptIds:["evidence_release_plan","evidence_release_approval","evidence_rollout_started","evidence_health_passed"],highRisk:!0}],releases:[{id:"release_customer_portal_v2",deploymentId:"deployment_customer_portal_v2",version:"2.0.0",orchestrationRef:{id:"orchestration_release_customer_portal",kind:"orchestration_workflow"}}],rollbacks:[{id:"rollback_customer_portal_v2",deploymentId:"deployment_customer_portal_v2",rollbackRef:{id:"rollback_customer_portal",kind:"progressive_delivery_rollback"},priorEvidenceReceiptId:"evidence_rollout_started"}],healthChecks:[{id:"health_customer_portal",serviceId:"service_customer_portal",kind:"health",metricRef:{id:"metric_http_200",kind:"observability_metric"}},{id:"ready_customer_portal",serviceId:"service_customer_portal",kind:"readiness",metricRef:{id:"metric_ready",kind:"observability_metric"}},{id:"live_customer_portal",serviceId:"service_customer_portal",kind:"liveness",metricRef:{id:"metric_live",kind:"observability_metric"}}],slos:[{id:"slo_customer_portal_availability",serviceId:"service_customer_portal",objective:"monthly availability",threshold:"99.9%",metricRefs:[{id:"metric_http_200",kind:"observability_metric"}],ownerRef:e}],monitors:[{id:"monitor_customer_portal",serviceId:"service_customer_portal",metricRefs:[{id:"metric_http_200",kind:"observability_metric"}],traceRefs:[{id:"trace_checkout",kind:"observability_trace"}],logRefs:[{id:"log_edge_errors",kind:"observability_log"}]}],alerts:[],onCall:[],escalations:[],incidents:[],postmortems:[],capacityPlans:[{id:"capacity_customer_portal_peak",serviceId:"service_customer_portal",expectedLoad:"1000 rpm",thresholds:["cpu < 70%","p95 < 250ms"],ownerRef:e,evidenceReceiptIds:["evidence_capacity_review"]}],costBudgets:[{id:"cost_customer_portal_monthly",serviceId:"service_customer_portal",budgetRef:{id:"budget_customer_portal",kind:"cost_budget"},usageRef:{id:"usage_customer_portal",kind:"metering_usage"},thresholds:["warn at 80%","block at 120%"],ownerRef:e}],secretRefs:[{id:"secret_customer_portal_runtime",purpose:"runtime configuration",ref:"secretref:customer-portal-runtime",ownerRef:e}],operationalRisks:[{id:"risk_customer_portal_release",serviceId:"service_customer_portal",level:"high",mitigationRef:"rollback_customer_portal_v2",ownerRef:e}],approvalRequirements:[{id:"approval_customer_portal_release",policyGateRef:r,ownerRef:e,requiredFor:["deployment_customer_portal_v2"]}],evidenceReceipts:[{id:"evidence_migration_plan",sourceRef:"migration_customer_portal_content",action:"plan_migration",actorRef:e,targetRef:"service_customer_portal",outcome:"planned",observedAt:"2026-05-09T10:00:00Z"},{id:"evidence_release_plan",sourceRef:"release_customer_portal_v2",action:"plan_release",actorRef:e,targetRef:"deployment_customer_portal_v2",outcome:"planned",observedAt:"2026-05-09T10:05:00Z"},{id:"evidence_release_approval",sourceRef:"approval_customer_portal_release",action:"approve_release",actorRef:e,targetRef:"deployment_customer_portal_v2",outcome:"approved",observedAt:"2026-05-09T10:10:00Z"},{id:"evidence_rollout_started",sourceRef:"rollout_customer_portal_canary",action:"record_rollout",actorRef:e,targetRef:"deployment_customer_portal_v2",outcome:"succeeded",observedAt:"2026-05-09T10:15:00Z"},{id:"evidence_health_passed",sourceRef:"health_customer_portal",action:"verify_health",actorRef:e,targetRef:"deployment_customer_portal_v2",outcome:"succeeded",observedAt:"2026-05-09T10:20:00Z"},{id:"evidence_capacity_review",sourceRef:"capacity_customer_portal_peak",action:"review_capacity",actorRef:e,targetRef:"service_customer_portal",outcome:"succeeded",observedAt:"2026-05-09T10:25:00Z"}]};export{t as deploymentReleaseLoopFixture};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={id:"owner_reliability_ops",kind:"companyos_owner"},i={id:"infra_ops_incident_loop",version:"1.0.0",environments:[{id:"env_production",name:"Production",tier:"production",ownerRef:e}],runtimeTargets:[{id:"runtime_api_worker",type:"api",capabilityRefs:[{id:"capability_api_runtime",kind:"integration_capability"}]}],services:[{id:"service_billing_api",name:"Billing API",runtimeTargetId:"runtime_api_worker",ownerRef:e}],pipelines:[],migrationWindows:[],deployments:[],releases:[],rollbacks:[],healthChecks:[{id:"health_billing_api",serviceId:"service_billing_api",kind:"health",metricRef:{id:"metric_billing_http_200",kind:"observability_metric"}}],slos:[{id:"slo_billing_latency",serviceId:"service_billing_api",objective:"p95 latency",threshold:"< 300ms",metricRefs:[{id:"metric_billing_latency",kind:"observability_metric"}],ownerRef:e}],monitors:[{id:"monitor_billing_latency",serviceId:"service_billing_api",metricRefs:[{id:"metric_billing_latency",kind:"observability_metric"}],traceRefs:[{id:"trace_billing_api",kind:"observability_trace"}],logRefs:[{id:"log_billing_errors",kind:"observability_log"}]}],alerts:[{id:"alert_billing_latency",serviceId:"service_billing_api",severity:"high",monitorId:"monitor_billing_latency",sloId:"slo_billing_latency"}],onCall:[{id:"oncall_billing_api",serviceId:"service_billing_api",ownerRef:e,scheduleRef:{id:"job_oncall_rotation",kind:"job_schedule"}}],escalations:[{id:"escalation_billing_latency",incidentId:"incident_billing_latency",onCallId:"oncall_billing_api",ownerRef:e}],incidents:[{id:"incident_billing_latency",alertId:"alert_billing_latency",environmentId:"env_production",serviceId:"service_billing_api",severity:"high",escalationId:"escalation_billing_latency",mitigationOwnerRef:e,postmortemId:"postmortem_billing_latency",evidenceReceiptIds:["evidence_alert_triggered","evidence_incident_triaged","evidence_mitigation_applied"]}],postmortems:[{id:"postmortem_billing_latency",incidentId:"incident_billing_latency",ownerRef:e,evidenceReceiptIds:["evidence_postmortem_written"],followUpRefs:["work_followup_billing_cache_guardrail"]}],capacityPlans:[{id:"capacity_billing_api_peak",serviceId:"service_billing_api",expectedLoad:"500 rpm",thresholds:["p95 < 300ms"],ownerRef:e,evidenceReceiptIds:["evidence_capacity_review"]}],costBudgets:[{id:"cost_billing_api_monthly",serviceId:"service_billing_api",budgetRef:{id:"budget_billing_api",kind:"cost_budget"},usageRef:{id:"usage_billing_api",kind:"metering_usage"},thresholds:["warn at 80%","block at 120%"],ownerRef:e}],secretRefs:[{id:"secret_billing_runtime",purpose:"runtime configuration",ref:"secretref:billing-runtime",ownerRef:e}],operationalRisks:[{id:"risk_billing_latency",serviceId:"service_billing_api",level:"high",mitigationRef:"work_followup_billing_cache_guardrail",ownerRef:e}],approvalRequirements:[],evidenceReceipts:[{id:"evidence_alert_triggered",sourceRef:"alert_billing_latency",action:"record_alert",actorRef:e,targetRef:"incident_billing_latency",outcome:"failed",observedAt:"2026-05-09T11:00:00Z"},{id:"evidence_incident_triaged",sourceRef:"incident_billing_latency",action:"triage_incident",actorRef:e,targetRef:"service_billing_api",outcome:"planned",observedAt:"2026-05-09T11:05:00Z"},{id:"evidence_mitigation_applied",sourceRef:"incident_billing_latency",action:"apply_mitigation",actorRef:e,targetRef:"service_billing_api",outcome:"mitigated",observedAt:"2026-05-09T11:20:00Z"},{id:"evidence_postmortem_written",sourceRef:"postmortem_billing_latency",action:"write_postmortem",actorRef:e,targetRef:"incident_billing_latency",outcome:"succeeded",observedAt:"2026-05-09T12:00:00Z"},{id:"evidence_capacity_review",sourceRef:"capacity_billing_api_peak",action:"review_capacity",actorRef:e,targetRef:"service_billing_api",outcome:"succeeded",observedAt:"2026-05-09T12:10:00Z"}]};export{i as incidentLoopFixture};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e={id:"owner_platform_ops",kind:"companyos_owner"},t={id:"policy_gate_production_release",kind:"companyos_policy_gate"},r={id:"infra_ops_deployment_release_loop",version:"1.0.0",environments:[{id:"env_production",name:"Production",tier:"production",ownerRef:e}],runtimeTargets:[{id:"runtime_web_edge",type:"web",capabilityRefs:[{id:"capability_static_web_runtime",kind:"integration_capability"}]}],services:[{id:"service_customer_portal",name:"Customer portal",runtimeTargetId:"runtime_web_edge",ownerRef:e}],pipelines:[{id:"pipeline_customer_portal_release",jobScheduleRef:{id:"job_release_pipeline",kind:"job_schedule"},capabilityRefs:[{id:"capability_release_artifact",kind:"integration_capability"}],ownerRef:e}],migrationWindows:[{id:"migration_customer_portal_content",serviceId:"service_customer_portal",windowRef:"window:2026-05-09T20:00:00Z/PT1H",rollbackRef:{id:"rollback_customer_portal",kind:"progressive_delivery_rollback"},ownerRef:e,evidenceReceiptIds:["evidence_migration_plan"]}],deployments:[{id:"deployment_customer_portal_v2",environmentId:"env_production",serviceId:"service_customer_portal",pipelineId:"pipeline_customer_portal_release",rolloutRef:{id:"rollout_customer_portal_canary",kind:"progressive_delivery_rollout"},rollbackRef:{id:"rollback_customer_portal",kind:"progressive_delivery_rollback"},approvalRequirementId:"approval_customer_portal_release",healthCheckIds:["health_customer_portal","ready_customer_portal","live_customer_portal"],sloIds:["slo_customer_portal_availability"],evidenceReceiptIds:["evidence_release_plan","evidence_release_approval","evidence_rollout_started","evidence_health_passed"],highRisk:!0}],releases:[{id:"release_customer_portal_v2",deploymentId:"deployment_customer_portal_v2",version:"2.0.0",orchestrationRef:{id:"orchestration_release_customer_portal",kind:"orchestration_workflow"}}],rollbacks:[{id:"rollback_customer_portal_v2",deploymentId:"deployment_customer_portal_v2",rollbackRef:{id:"rollback_customer_portal",kind:"progressive_delivery_rollback"},priorEvidenceReceiptId:"evidence_rollout_started"}],healthChecks:[{id:"health_customer_portal",serviceId:"service_customer_portal",kind:"health",metricRef:{id:"metric_http_200",kind:"observability_metric"}},{id:"ready_customer_portal",serviceId:"service_customer_portal",kind:"readiness",metricRef:{id:"metric_ready",kind:"observability_metric"}},{id:"live_customer_portal",serviceId:"service_customer_portal",kind:"liveness",metricRef:{id:"metric_live",kind:"observability_metric"}}],slos:[{id:"slo_customer_portal_availability",serviceId:"service_customer_portal",objective:"monthly availability",threshold:"99.9%",metricRefs:[{id:"metric_http_200",kind:"observability_metric"}],ownerRef:e}],monitors:[{id:"monitor_customer_portal",serviceId:"service_customer_portal",metricRefs:[{id:"metric_http_200",kind:"observability_metric"}],traceRefs:[{id:"trace_checkout",kind:"observability_trace"}],logRefs:[{id:"log_edge_errors",kind:"observability_log"}]}],alerts:[],onCall:[],escalations:[],incidents:[],postmortems:[],capacityPlans:[{id:"capacity_customer_portal_peak",serviceId:"service_customer_portal",expectedLoad:"1000 rpm",thresholds:["cpu < 70%","p95 < 250ms"],ownerRef:e,evidenceReceiptIds:["evidence_capacity_review"]}],costBudgets:[{id:"cost_customer_portal_monthly",serviceId:"service_customer_portal",budgetRef:{id:"budget_customer_portal",kind:"cost_budget"},usageRef:{id:"usage_customer_portal",kind:"metering_usage"},thresholds:["warn at 80%","block at 120%"],ownerRef:e}],secretRefs:[{id:"secret_customer_portal_runtime",purpose:"runtime configuration",ref:"secretref:customer-portal-runtime",ownerRef:e}],operationalRisks:[{id:"risk_customer_portal_release",serviceId:"service_customer_portal",level:"high",mitigationRef:"rollback_customer_portal_v2",ownerRef:e}],approvalRequirements:[{id:"approval_customer_portal_release",policyGateRef:t,ownerRef:e,requiredFor:["deployment_customer_portal_v2"]}],evidenceReceipts:[{id:"evidence_migration_plan",sourceRef:"migration_customer_portal_content",action:"plan_migration",actorRef:e,targetRef:"service_customer_portal",outcome:"planned",observedAt:"2026-05-09T10:00:00Z"},{id:"evidence_release_plan",sourceRef:"release_customer_portal_v2",action:"plan_release",actorRef:e,targetRef:"deployment_customer_portal_v2",outcome:"planned",observedAt:"2026-05-09T10:05:00Z"},{id:"evidence_release_approval",sourceRef:"approval_customer_portal_release",action:"approve_release",actorRef:e,targetRef:"deployment_customer_portal_v2",outcome:"approved",observedAt:"2026-05-09T10:10:00Z"},{id:"evidence_rollout_started",sourceRef:"rollout_customer_portal_canary",action:"record_rollout",actorRef:e,targetRef:"deployment_customer_portal_v2",outcome:"succeeded",observedAt:"2026-05-09T10:15:00Z"},{id:"evidence_health_passed",sourceRef:"health_customer_portal",action:"verify_health",actorRef:e,targetRef:"deployment_customer_portal_v2",outcome:"succeeded",observedAt:"2026-05-09T10:20:00Z"},{id:"evidence_capacity_review",sourceRef:"capacity_customer_portal_peak",action:"review_capacity",actorRef:e,targetRef:"service_customer_portal",outcome:"succeeded",observedAt:"2026-05-09T10:25:00Z"}]};var i={id:"owner_reliability_ops",kind:"companyos_owner"},l={id:"infra_ops_incident_loop",version:"1.0.0",environments:[{id:"env_production",name:"Production",tier:"production",ownerRef:i}],runtimeTargets:[{id:"runtime_api_worker",type:"api",capabilityRefs:[{id:"capability_api_runtime",kind:"integration_capability"}]}],services:[{id:"service_billing_api",name:"Billing API",runtimeTargetId:"runtime_api_worker",ownerRef:i}],pipelines:[],migrationWindows:[],deployments:[],releases:[],rollbacks:[],healthChecks:[{id:"health_billing_api",serviceId:"service_billing_api",kind:"health",metricRef:{id:"metric_billing_http_200",kind:"observability_metric"}}],slos:[{id:"slo_billing_latency",serviceId:"service_billing_api",objective:"p95 latency",threshold:"< 300ms",metricRefs:[{id:"metric_billing_latency",kind:"observability_metric"}],ownerRef:i}],monitors:[{id:"monitor_billing_latency",serviceId:"service_billing_api",metricRefs:[{id:"metric_billing_latency",kind:"observability_metric"}],traceRefs:[{id:"trace_billing_api",kind:"observability_trace"}],logRefs:[{id:"log_billing_errors",kind:"observability_log"}]}],alerts:[{id:"alert_billing_latency",serviceId:"service_billing_api",severity:"high",monitorId:"monitor_billing_latency",sloId:"slo_billing_latency"}],onCall:[{id:"oncall_billing_api",serviceId:"service_billing_api",ownerRef:i,scheduleRef:{id:"job_oncall_rotation",kind:"job_schedule"}}],escalations:[{id:"escalation_billing_latency",incidentId:"incident_billing_latency",onCallId:"oncall_billing_api",ownerRef:i}],incidents:[{id:"incident_billing_latency",alertId:"alert_billing_latency",environmentId:"env_production",serviceId:"service_billing_api",severity:"high",escalationId:"escalation_billing_latency",mitigationOwnerRef:i,postmortemId:"postmortem_billing_latency",evidenceReceiptIds:["evidence_alert_triggered","evidence_incident_triaged","evidence_mitigation_applied"]}],postmortems:[{id:"postmortem_billing_latency",incidentId:"incident_billing_latency",ownerRef:i,evidenceReceiptIds:["evidence_postmortem_written"],followUpRefs:["work_followup_billing_cache_guardrail"]}],capacityPlans:[{id:"capacity_billing_api_peak",serviceId:"service_billing_api",expectedLoad:"500 rpm",thresholds:["p95 < 300ms"],ownerRef:i,evidenceReceiptIds:["evidence_capacity_review"]}],costBudgets:[{id:"cost_billing_api_monthly",serviceId:"service_billing_api",budgetRef:{id:"budget_billing_api",kind:"cost_budget"},usageRef:{id:"usage_billing_api",kind:"metering_usage"},thresholds:["warn at 80%","block at 120%"],ownerRef:i}],secretRefs:[{id:"secret_billing_runtime",purpose:"runtime configuration",ref:"secretref:billing-runtime",ownerRef:i}],operationalRisks:[{id:"risk_billing_latency",serviceId:"service_billing_api",level:"high",mitigationRef:"work_followup_billing_cache_guardrail",ownerRef:i}],approvalRequirements:[],evidenceReceipts:[{id:"evidence_alert_triggered",sourceRef:"alert_billing_latency",action:"record_alert",actorRef:i,targetRef:"incident_billing_latency",outcome:"failed",observedAt:"2026-05-09T11:00:00Z"},{id:"evidence_incident_triaged",sourceRef:"incident_billing_latency",action:"triage_incident",actorRef:i,targetRef:"service_billing_api",outcome:"planned",observedAt:"2026-05-09T11:05:00Z"},{id:"evidence_mitigation_applied",sourceRef:"incident_billing_latency",action:"apply_mitigation",actorRef:i,targetRef:"service_billing_api",outcome:"mitigated",observedAt:"2026-05-09T11:20:00Z"},{id:"evidence_postmortem_written",sourceRef:"postmortem_billing_latency",action:"write_postmortem",actorRef:i,targetRef:"incident_billing_latency",outcome:"succeeded",observedAt:"2026-05-09T12:00:00Z"},{id:"evidence_capacity_review",sourceRef:"capacity_billing_api_peak",action:"review_capacity",actorRef:i,targetRef:"service_billing_api",outcome:"succeeded",observedAt:"2026-05-09T12:10:00Z"}]};export{r as deploymentReleaseLoopFixture,l as incidentLoopFixture};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var b={id:"owner_platform_ops",kind:"companyos_owner"},Ve={id:"policy_gate_production_release",kind:"companyos_policy_gate"},zt={id:"infra_ops_deployment_release_loop",version:"1.0.0",environments:[{id:"env_production",name:"Production",tier:"production",ownerRef:b}],runtimeTargets:[{id:"runtime_web_edge",type:"web",capabilityRefs:[{id:"capability_static_web_runtime",kind:"integration_capability"}]}],services:[{id:"service_customer_portal",name:"Customer portal",runtimeTargetId:"runtime_web_edge",ownerRef:b}],pipelines:[{id:"pipeline_customer_portal_release",jobScheduleRef:{id:"job_release_pipeline",kind:"job_schedule"},capabilityRefs:[{id:"capability_release_artifact",kind:"integration_capability"}],ownerRef:b}],migrationWindows:[{id:"migration_customer_portal_content",serviceId:"service_customer_portal",windowRef:"window:2026-05-09T20:00:00Z/PT1H",rollbackRef:{id:"rollback_customer_portal",kind:"progressive_delivery_rollback"},ownerRef:b,evidenceReceiptIds:["evidence_migration_plan"]}],deployments:[{id:"deployment_customer_portal_v2",environmentId:"env_production",serviceId:"service_customer_portal",pipelineId:"pipeline_customer_portal_release",rolloutRef:{id:"rollout_customer_portal_canary",kind:"progressive_delivery_rollout"},rollbackRef:{id:"rollback_customer_portal",kind:"progressive_delivery_rollback"},approvalRequirementId:"approval_customer_portal_release",healthCheckIds:["health_customer_portal","ready_customer_portal","live_customer_portal"],sloIds:["slo_customer_portal_availability"],evidenceReceiptIds:["evidence_release_plan","evidence_release_approval","evidence_rollout_started","evidence_health_passed"],highRisk:!0}],releases:[{id:"release_customer_portal_v2",deploymentId:"deployment_customer_portal_v2",version:"2.0.0",orchestrationRef:{id:"orchestration_release_customer_portal",kind:"orchestration_workflow"}}],rollbacks:[{id:"rollback_customer_portal_v2",deploymentId:"deployment_customer_portal_v2",rollbackRef:{id:"rollback_customer_portal",kind:"progressive_delivery_rollback"},priorEvidenceReceiptId:"evidence_rollout_started"}],healthChecks:[{id:"health_customer_portal",serviceId:"service_customer_portal",kind:"health",metricRef:{id:"metric_http_200",kind:"observability_metric"}},{id:"ready_customer_portal",serviceId:"service_customer_portal",kind:"readiness",metricRef:{id:"metric_ready",kind:"observability_metric"}},{id:"live_customer_portal",serviceId:"service_customer_portal",kind:"liveness",metricRef:{id:"metric_live",kind:"observability_metric"}}],slos:[{id:"slo_customer_portal_availability",serviceId:"service_customer_portal",objective:"monthly availability",threshold:"99.9%",metricRefs:[{id:"metric_http_200",kind:"observability_metric"}],ownerRef:b}],monitors:[{id:"monitor_customer_portal",serviceId:"service_customer_portal",metricRefs:[{id:"metric_http_200",kind:"observability_metric"}],traceRefs:[{id:"trace_checkout",kind:"observability_trace"}],logRefs:[{id:"log_edge_errors",kind:"observability_log"}]}],alerts:[],onCall:[],escalations:[],incidents:[],postmortems:[],capacityPlans:[{id:"capacity_customer_portal_peak",serviceId:"service_customer_portal",expectedLoad:"1000 rpm",thresholds:["cpu < 70%","p95 < 250ms"],ownerRef:b,evidenceReceiptIds:["evidence_capacity_review"]}],costBudgets:[{id:"cost_customer_portal_monthly",serviceId:"service_customer_portal",budgetRef:{id:"budget_customer_portal",kind:"cost_budget"},usageRef:{id:"usage_customer_portal",kind:"metering_usage"},thresholds:["warn at 80%","block at 120%"],ownerRef:b}],secretRefs:[{id:"secret_customer_portal_runtime",purpose:"runtime configuration",ref:"secretref:customer-portal-runtime",ownerRef:b}],operationalRisks:[{id:"risk_customer_portal_release",serviceId:"service_customer_portal",level:"high",mitigationRef:"rollback_customer_portal_v2",ownerRef:b}],approvalRequirements:[{id:"approval_customer_portal_release",policyGateRef:Ve,ownerRef:b,requiredFor:["deployment_customer_portal_v2"]}],evidenceReceipts:[{id:"evidence_migration_plan",sourceRef:"migration_customer_portal_content",action:"plan_migration",actorRef:b,targetRef:"service_customer_portal",outcome:"planned",observedAt:"2026-05-09T10:00:00Z"},{id:"evidence_release_plan",sourceRef:"release_customer_portal_v2",action:"plan_release",actorRef:b,targetRef:"deployment_customer_portal_v2",outcome:"planned",observedAt:"2026-05-09T10:05:00Z"},{id:"evidence_release_approval",sourceRef:"approval_customer_portal_release",action:"approve_release",actorRef:b,targetRef:"deployment_customer_portal_v2",outcome:"approved",observedAt:"2026-05-09T10:10:00Z"},{id:"evidence_rollout_started",sourceRef:"rollout_customer_portal_canary",action:"record_rollout",actorRef:b,targetRef:"deployment_customer_portal_v2",outcome:"succeeded",observedAt:"2026-05-09T10:15:00Z"},{id:"evidence_health_passed",sourceRef:"health_customer_portal",action:"verify_health",actorRef:b,targetRef:"deployment_customer_portal_v2",outcome:"succeeded",observedAt:"2026-05-09T10:20:00Z"},{id:"evidence_capacity_review",sourceRef:"capacity_customer_portal_peak",action:"review_capacity",actorRef:b,targetRef:"service_customer_portal",outcome:"succeeded",observedAt:"2026-05-09T10:25:00Z"}]};var R={id:"owner_reliability_ops",kind:"companyos_owner"},$t={id:"infra_ops_incident_loop",version:"1.0.0",environments:[{id:"env_production",name:"Production",tier:"production",ownerRef:R}],runtimeTargets:[{id:"runtime_api_worker",type:"api",capabilityRefs:[{id:"capability_api_runtime",kind:"integration_capability"}]}],services:[{id:"service_billing_api",name:"Billing API",runtimeTargetId:"runtime_api_worker",ownerRef:R}],pipelines:[],migrationWindows:[],deployments:[],releases:[],rollbacks:[],healthChecks:[{id:"health_billing_api",serviceId:"service_billing_api",kind:"health",metricRef:{id:"metric_billing_http_200",kind:"observability_metric"}}],slos:[{id:"slo_billing_latency",serviceId:"service_billing_api",objective:"p95 latency",threshold:"< 300ms",metricRefs:[{id:"metric_billing_latency",kind:"observability_metric"}],ownerRef:R}],monitors:[{id:"monitor_billing_latency",serviceId:"service_billing_api",metricRefs:[{id:"metric_billing_latency",kind:"observability_metric"}],traceRefs:[{id:"trace_billing_api",kind:"observability_trace"}],logRefs:[{id:"log_billing_errors",kind:"observability_log"}]}],alerts:[{id:"alert_billing_latency",serviceId:"service_billing_api",severity:"high",monitorId:"monitor_billing_latency",sloId:"slo_billing_latency"}],onCall:[{id:"oncall_billing_api",serviceId:"service_billing_api",ownerRef:R,scheduleRef:{id:"job_oncall_rotation",kind:"job_schedule"}}],escalations:[{id:"escalation_billing_latency",incidentId:"incident_billing_latency",onCallId:"oncall_billing_api",ownerRef:R}],incidents:[{id:"incident_billing_latency",alertId:"alert_billing_latency",environmentId:"env_production",serviceId:"service_billing_api",severity:"high",escalationId:"escalation_billing_latency",mitigationOwnerRef:R,postmortemId:"postmortem_billing_latency",evidenceReceiptIds:["evidence_alert_triggered","evidence_incident_triaged","evidence_mitigation_applied"]}],postmortems:[{id:"postmortem_billing_latency",incidentId:"incident_billing_latency",ownerRef:R,evidenceReceiptIds:["evidence_postmortem_written"],followUpRefs:["work_followup_billing_cache_guardrail"]}],capacityPlans:[{id:"capacity_billing_api_peak",serviceId:"service_billing_api",expectedLoad:"500 rpm",thresholds:["p95 < 300ms"],ownerRef:R,evidenceReceiptIds:["evidence_capacity_review"]}],costBudgets:[{id:"cost_billing_api_monthly",serviceId:"service_billing_api",budgetRef:{id:"budget_billing_api",kind:"cost_budget"},usageRef:{id:"usage_billing_api",kind:"metering_usage"},thresholds:["warn at 80%","block at 120%"],ownerRef:R}],secretRefs:[{id:"secret_billing_runtime",purpose:"runtime configuration",ref:"secretref:billing-runtime",ownerRef:R}],operationalRisks:[{id:"risk_billing_latency",serviceId:"service_billing_api",level:"high",mitigationRef:"work_followup_billing_cache_guardrail",ownerRef:R}],approvalRequirements:[],evidenceReceipts:[{id:"evidence_alert_triggered",sourceRef:"alert_billing_latency",action:"record_alert",actorRef:R,targetRef:"incident_billing_latency",outcome:"failed",observedAt:"2026-05-09T11:00:00Z"},{id:"evidence_incident_triaged",sourceRef:"incident_billing_latency",action:"triage_incident",actorRef:R,targetRef:"service_billing_api",outcome:"planned",observedAt:"2026-05-09T11:05:00Z"},{id:"evidence_mitigation_applied",sourceRef:"incident_billing_latency",action:"apply_mitigation",actorRef:R,targetRef:"service_billing_api",outcome:"mitigated",observedAt:"2026-05-09T11:20:00Z"},{id:"evidence_postmortem_written",sourceRef:"postmortem_billing_latency",action:"write_postmortem",actorRef:R,targetRef:"incident_billing_latency",outcome:"succeeded",observedAt:"2026-05-09T12:00:00Z"},{id:"evidence_capacity_review",sourceRef:"capacity_billing_api_peak",action:"review_capacity",actorRef:R,targetRef:"service_billing_api",outcome:"succeeded",observedAt:"2026-05-09T12:10:00Z"}]};import{createHash as je}from"node:crypto";function ze(e){return JSON.stringify(z(e))}function Bt(e){let i=ze(e);return`sha256:${je("sha256").update(i).digest("hex")}`}function z(e){if(e===null||typeof e==="string"||typeof e==="boolean")return e;if(typeof e==="number"){if(!Number.isFinite(e))throw TypeError("Cannot canonicalize number");return e}if(Array.isArray(e))return e.map(z);if(typeof e==="object")return Object.fromEntries(Object.entries(e).filter(([,i])=>i!==void 0).sort(([i],[n])=>i.localeCompare(n)).map(([i,n])=>[i,z(n)]));throw TypeError(`Cannot canonicalize ${typeof e}`)}var B=["cost","complexity","migrationRisk"],G=["reliability","performance","scalability","portability"];function L(e){let i=[...e].sort((o,c)=>o.id.localeCompare(c.id)),n=i.filter((o)=>o.hardViolationIds.length),r=i.filter((o)=>!o.hardViolationIds.length),s=r.filter((o)=>!r.some((c)=>c.id!==o.id&&Ee(c,o)));return{eligibleCandidateIds:r.map(({id:o})=>o),rejectedCandidateIds:n.map(({id:o})=>o),paretoCandidateIds:s.map(({id:o})=>o)}}function Ee(e,i){let n=B.every((c)=>e.scores[c]<=i.scores[c]),r=G.every((c)=>e.scores[c]>=i.scores[c]),s=B.some((c)=>e.scores[c]<i.scores[c]),o=G.some((c)=>e.scores[c]>i.scores[c]);return n&&r&&(s||o)}var O=["compute","database","cache","queue","object_storage","email","network","secrets","ci","observability"].map((e)=>`binding-${e}`),H=`sha256:${"a".repeat(64)}`,F={candidates:[{id:"candidate-a",architectureId:"architecture-primary",bindingIds:O,satisfiedRequirementIds:["req-availability","req-portability"],hardViolationIds:[],scores:{cost:50,reliability:90,performance:85,scalability:90,portability:80,complexity:40,migrationRisk:30},assumptions:["Qualified capacity remains available."]},{id:"candidate-b",architectureId:"architecture-primary",bindingIds:O,satisfiedRequirementIds:["req-availability"],hardViolationIds:[],scores:{cost:60,reliability:80,performance:75,scalability:80,portability:70,complexity:50,migrationRisk:40},assumptions:["Manual scaling is acceptable."]},{id:"candidate-invalid",architectureId:"architecture-primary",bindingIds:O,satisfiedRequirementIds:["req-portability"],hardViolationIds:["req-availability"],scores:{cost:10,reliability:100,performance:100,scalability:100,portability:100,complexity:10,migrationRisk:10},assumptions:["Hard requirement is knowingly unmet."]}],comparisons:[{id:"comparison-primary",candidateIds:["candidate-a","candidate-b","candidate-invalid"],rejectedCandidateIds:["candidate-invalid"],paretoCandidateIds:["candidate-a"],selectedCandidateId:"candidate-a",rationale:"Candidate A dominates B after hard-violation rejection."}],adrs:[{id:"adr-primary",title:"Adopt portable regional service",status:"accepted",comparisonId:"comparison-primary",selectedCandidateId:"candidate-a",requirementIds:["req-availability","req-portability"],consequenceStatements:["Operate two regional failure domains."],decidedAt:"2026-08-03T00:00:00Z"}],infrastructurePlans:[{id:"plan-primary",adrId:"adr-primary",architectureId:"architecture-primary",candidateId:"candidate-a",steps:[{id:"step-bind",sequence:1,action:"Realize approved logical bindings.",bindingIds:O,prerequisiteStepIds:[],evidenceRefs:["evidence-plan-review"]}],rollbackPlanRef:"rollback:plan-primary",approvalRequirementIds:["approval-architecture-owner"]}],evolutionPlans:[],handoffPackets:[{id:"handoff-primary",infrastructurePlanId:"plan-primary",recipientRef:"workflow:infra-implementation",contractDigest:H,artifactRefs:["artifact:plan-primary"],requiredEvidenceRefs:["evidence:implementation-receipt"],issuedAt:"2026-08-03T01:00:00Z",expiresAt:"2026-08-10T01:00:00Z",containsCredentials:!1}],handoffReceipts:[{id:"receipt-primary",packetId:"handoff-primary",recipientRef:"workflow:infra-implementation",status:"accepted",receivedDigest:H,evidenceRefs:["evidence:receipt-primary"],receivedAt:"2026-08-03T01:05:00Z"}],unsatisfiableReports:[]};var V=["compute","database","cache","queue","object_storage","email","network","secrets","ci","observability"],E=V.map((e)=>`cap-${e}`),$e=V.map((e)=>`binding-${e}`),Ut={id:"intent-customer-api-v2",version:"2.0.0",goals:[{id:"goal-resilience",statement:"Keep the customer API available through regional faults.",priority:"critical",requirementIds:["req-availability","req-portability"]}],requirements:[{id:"req-availability",goalId:"goal-resilience",category:"availability",description:"Monthly service availability",criticality:"hard",measure:"availability_percent",target:99.95,unit:"percent"},{id:"req-portability",goalId:"goal-resilience",category:"portability",description:"Retain replaceable infrastructure boundaries",criticality:"soft"}],workloadEnvelopes:[{id:"workload-primary",concurrentUsers:2000,requestsPerSecond:800,burstMultiplier:3,latencyP95Ms:250,availabilityPercent:99.95,dataVolumeGb:500,monthlyDataGrowthPercent:8,storageGb:750,monthlyEgressGb:2000,backgroundJobsPerHour:5000,rpoMinutes:5,rtoMinutes:30,regions:["eu-west","eu-central"],forecastMonths:24,annualTrafficGrowthPercent:40}],restrictions:[{id:"restriction-residency",requirementId:"req-availability",scopeIds:["architecture-primary"],kind:"residency",rule:"Customer data remains in approved EU regions.",severity:"hard",rationale:"Regulatory boundary"},{id:"restriction-cache",scopeIds:["architecture-primary"],kind:"technology",rule:"Cache may be temporarily omitted in preview.",severity:"soft",rationale:"Preview cost control"}],providerPolicies:[{id:"policy-neutral",allowedProviderClasses:["qualified-cloud"],deniedProviderClasses:["unqualified-cloud"],residencyRegions:["eu-west","eu-central"],portabilityMinimum:70,managedServicePosture:"prefer_managed",requiredCapabilities:["encryption-at-rest"],deniedCapabilities:["public-database"],nonWaivableRestrictionIds:["restriction-residency"]}],capabilities:V.map((e,i)=>({id:E[i],kind:e,purpose:`Provide ${e.replace("_"," ")} capability.`,requirementIds:["req-availability"],dependsOnCapabilityIds:i===0?[]:["cap-compute"]})),architectures:[{id:"architecture-primary",name:"Portable regional service",workloadEnvelopeId:"workload-primary",capabilityIds:E,restrictionIds:["restriction-residency","restriction-cache"]}],bindings:V.map((e,i)=>({id:$e[i],architectureId:"architecture-primary",capabilityId:E[i],environmentId:"production-eu",targetClass:`managed-${e}`,providerClass:"qualified-cloud",region:"eu-west",evidenceRefs:[`evidence-${e}`]})),evolutionTriggers:[{id:"trigger-load",metric:"requests_per_second",operator:"gte",threshold:700,observationWindowMinutes:15,action:"replan"}],evolutionPolicies:[{id:"evolution-primary",architectureId:"architecture-primary",triggerIds:["trigger-load"],minimumReviewIntervalDays:30,allowedChangeKinds:["scale","rebind"],approvalRequirementIds:["approval-architecture-owner"]}],waivers:[{id:"waiver-preview",restrictionId:"restriction-cache",scope:{architectureIds:["architecture-primary"],environmentIds:["preview","development"]},reason:"Validate traffic assumptions before provisioning cache.",issuedAt:"2026-08-01T00:00:00Z",expiresAt:"2026-09-01T00:00:00Z",approvedByRef:"owner:platform"},{id:"waiver-development",restrictionId:"restriction-cache",scope:{architectureIds:["architecture-primary"],environmentIds:["development"]},reason:"Tightened child waiver for development only.",issuedAt:"2026-08-02T00:00:00Z",expiresAt:"2026-08-15T00:00:00Z",approvedByRef:"owner:platform",inheritedFromWaiverId:"waiver-preview"}],...F};import{z as I}from"zod";import{z as l}from"zod";var d=l.string().min(1),Te=l.enum(["compute","database","cache","queue","object_storage","email","network","secrets","ci","observability"]),U=l.object({id:d,kind:Te,purpose:d,requirementIds:l.array(d),dependsOnCapabilityIds:l.array(d)}).strict(),N=l.object({id:d,name:d,workloadEnvelopeId:d,capabilityIds:l.array(d).min(1),restrictionIds:l.array(d)}).strict(),J=l.object({id:d,architectureId:d,capabilityId:d,environmentId:d,targetClass:d,providerClass:d.optional(),region:d,evidenceRefs:l.array(d)}).strict(),K=l.object({id:d,metric:d,operator:l.enum(["gt","gte","lt","lte","eq"]),threshold:l.number().finite(),observationWindowMinutes:l.number().int().positive(),action:l.enum(["review","replan","migrate"])}).strict(),Q=l.object({id:d,architectureId:d,triggerIds:l.array(d).min(1),minimumReviewIntervalDays:l.number().int().nonnegative(),allowedChangeKinds:l.array(l.enum(["scale","rebind","replace","retire"])).min(1),approvalRequirementIds:l.array(d)}).strict(),X=l.object({id:d,restrictionId:d,scope:l.object({architectureIds:l.array(d).min(1),environmentIds:l.array(d).min(1)}).strict(),reason:d,issuedAt:l.string().datetime({offset:!0}),expiresAt:l.string().datetime({offset:!0}),approvedByRef:d,inheritedFromWaiverId:d.optional()}).strict();import{z as p}from"zod";var g=p.string().min(1),P=p.number().finite().nonnegative(),Y=p.number().finite().positive(),T=p.number().finite().min(0).max(100),ee=p.object({id:g,goalId:g,category:p.enum(["availability","capacity","cost","data","latency","operability","portability","recovery","security"]),description:g,criticality:p.enum(["hard","soft"]),measure:g.optional(),target:p.number().finite().optional(),unit:g.optional()}).strict(),te=p.object({id:g,statement:g,priority:p.enum(["low","medium","high","critical"]),requirementIds:p.array(g).min(1)}).strict(),ie=p.object({id:g,concurrentUsers:P,requestsPerSecond:P,burstMultiplier:Y,latencyP95Ms:Y,availabilityPercent:T,dataVolumeGb:P,monthlyDataGrowthPercent:T,storageGb:P,monthlyEgressGb:P,backgroundJobsPerHour:P,rpoMinutes:P,rtoMinutes:P,regions:p.array(g).min(1),forecastMonths:p.number().int().positive(),annualTrafficGrowthPercent:T}).strict(),re=p.object({id:g,requirementId:g.optional(),scopeIds:p.array(g).min(1),kind:p.enum(["capability","compliance","cost","network","operability","residency","technology"]),rule:g,severity:p.enum(["hard","soft"]),rationale:g}).strict(),ne=p.object({id:g,allowedProviderClasses:p.array(g),deniedProviderClasses:p.array(g),residencyRegions:p.array(g).min(1),portabilityMinimum:p.number().int().min(0).max(100),managedServicePosture:p.enum(["prefer_managed","allow_managed","self_managed_only"]),requiredCapabilities:p.array(g),deniedCapabilities:p.array(g),nonWaivableRestrictionIds:p.array(g)}).strict();import{z as u}from"zod";var f=u.string().min(1),q=u.number().finite().min(0).max(100),De=u.object({cost:q,reliability:q,performance:q,scalability:q,portability:q,complexity:q,migrationRisk:q}).strict(),ae=u.object({id:f,architectureId:f,bindingIds:u.array(f).min(1),satisfiedRequirementIds:u.array(f),hardViolationIds:u.array(f),scores:De,assumptions:u.array(f)}).strict(),oe=u.object({id:f,candidateIds:u.array(f).min(1),rejectedCandidateIds:u.array(f),paretoCandidateIds:u.array(f),selectedCandidateId:f.optional(),rationale:f}).strict(),se=u.object({id:f,title:f,status:u.enum(["proposed","accepted","superseded","rejected"]),comparisonId:f,selectedCandidateId:f,requirementIds:u.array(f).min(1),consequenceStatements:u.array(f).min(1),supersedesAdrId:f.optional(),decidedAt:u.string().datetime({offset:!0})}).strict(),ce=u.object({id:f,requirementIds:u.array(f).min(1),candidateViolationIds:u.array(u.object({candidateId:f,violationIds:u.array(f).min(1)}).strict()).min(1),conflictExplanation:f,resolutionOptions:u.array(f).min(1),generatedAt:u.string().datetime({offset:!0})}).strict();import{z as y}from"zod";var m=y.string().min(1),Me=y.object({id:m,sequence:y.number().int().positive(),action:m,bindingIds:y.array(m),prerequisiteStepIds:y.array(m),evidenceRefs:y.array(m)}).strict(),de=y.object({id:m,adrId:m,architectureId:m,candidateId:m,steps:y.array(Me).min(1),rollbackPlanRef:m,approvalRequirementIds:y.array(m)}).strict(),le=y.object({id:m,evolutionPolicyId:m,triggerId:m,fromAdrId:m,toAdrId:m,infrastructurePlanId:m,migrationRisk:y.enum(["low","medium","high","critical"]),continuityRequirementIds:y.array(m).min(1)}).strict(),pe=y.object({id:m,infrastructurePlanId:m,recipientRef:m,contractDigest:y.string().regex(/^sha256:[a-f0-9]{64}$/),artifactRefs:y.array(m).min(1),requiredEvidenceRefs:y.array(m),issuedAt:y.string().datetime({offset:!0}),expiresAt:y.string().datetime({offset:!0}),containsCredentials:y.literal(!1)}).strict(),me=y.object({id:m,packetId:m,recipientRef:m,status:y.enum(["accepted","rejected","expired"]),receivedDigest:y.string().regex(/^sha256:[a-f0-9]{64}$/),evidenceRefs:y.array(m),receivedAt:y.string().datetime({offset:!0})}).strict();var fe=I.object({id:I.string().min(1),version:I.literal("2.0.0"),goals:I.array(te).min(1),requirements:I.array(ee).min(1),workloadEnvelopes:I.array(ie).min(1),restrictions:I.array(re),providerPolicies:I.array(ne).min(1),capabilities:I.array(U).min(1),architectures:I.array(N).min(1),bindings:I.array(J),evolutionTriggers:I.array(K),evolutionPolicies:I.array(Q),waivers:I.array(X),candidates:I.array(ae).min(1),comparisons:I.array(oe),adrs:I.array(se),infrastructurePlans:I.array(de),evolutionPlans:I.array(le),handoffPackets:I.array(pe),handoffReceipts:I.array(me),unsatisfiableReports:I.array(ce)}).strict();function S(e){return new Set(e.map(({id:i})=>i))}function x(e,i,n,r,s){for(let o of i)v(e,o,n,r,s)}function v(e,i,n,r,s){if(!e.has(i))s.push({code:"missing_reference",message:`${n} references missing ${r} ${i}.`})}function ue(e,i){for(let[n,r]of Object.entries(e)){if(!Array.isArray(r))continue;let s=new Set;for(let o of r){if(!We(o))continue;if(s.has(o.id))i.push(h("duplicate_id",`${n} contains duplicate id ${o.id}.`));s.add(o.id)}}}function h(e,i){return{code:e,message:i}}function We(e){return typeof e==="object"&&e!==null&&"id"in e&&typeof e.id==="string"}function ye(e){let i=[],n=S(e.goals),r=S(e.requirements),s=S(e.workloadEnvelopes),o=S(e.restrictions),c=S(e.capabilities),_=S(e.architectures),ke=S(e.bindings),W=S(e.evolutionTriggers),Ce=S(e.evolutionPolicies),A=S(e.candidates),Pe=S(e.comparisons),j=S(e.adrs),Z=S(e.infrastructurePlans),qe=S(e.handoffPackets),Ae=new Set([...r,...o]);for(let a of e.requirements)v(n,a.goalId,a.id,"goal",i);for(let a of e.restrictions)if(a.requirementId)v(r,a.requirementId,a.id,"requirement",i);for(let a of e.goals)x(r,a.requirementIds,a.id,"requirement",i);for(let a of e.capabilities)x(r,a.requirementIds,a.id,"requirement",i),x(c,a.dependsOnCapabilityIds,a.id,"capability",i);for(let a of e.architectures)v(s,a.workloadEnvelopeId,a.id,"workload envelope",i),x(c,a.capabilityIds,a.id,"capability",i),x(o,a.restrictionIds,a.id,"restriction",i);for(let a of e.bindings)v(_,a.architectureId,a.id,"architecture",i),v(c,a.capabilityId,a.id,"capability",i);for(let a of e.evolutionPolicies)v(_,a.architectureId,a.id,"architecture",i),x(W,a.triggerIds,a.id,"trigger",i);for(let a of e.waivers)v(o,a.restrictionId,a.id,"restriction",i),x(_,a.scope.architectureIds,a.id,"architecture",i);for(let a of e.candidates)v(_,a.architectureId,a.id,"architecture",i),x(ke,a.bindingIds,a.id,"binding",i),x(r,a.satisfiedRequirementIds,a.id,"requirement",i),x(Ae,a.hardViolationIds,a.id,"hard violation target",i);for(let a of e.comparisons)x(A,a.candidateIds,a.id,"candidate",i);for(let a of e.adrs)v(Pe,a.comparisonId,a.id,"comparison",i),v(A,a.selectedCandidateId,a.id,"candidate",i),x(r,a.requirementIds,a.id,"requirement",i);for(let a of e.infrastructurePlans)v(j,a.adrId,a.id,"ADR",i),v(_,a.architectureId,a.id,"architecture",i),v(A,a.candidateId,a.id,"candidate",i);for(let a of e.evolutionPlans)v(Ce,a.evolutionPolicyId,a.id,"evolution policy",i),v(Z,a.infrastructurePlanId,a.id,"infrastructure plan",i),v(W,a.triggerId,a.id,"trigger",i),v(j,a.fromAdrId,a.id,"ADR",i),v(j,a.toAdrId,a.id,"ADR",i);for(let a of e.handoffPackets)v(Z,a.infrastructurePlanId,a.id,"infrastructure plan",i);for(let a of e.handoffReceipts)v(qe,a.packetId,a.id,"handoff packet",i);for(let a of e.unsatisfiableReports)x(r,a.requirementIds,a.id,"requirement",i),x(A,a.candidateViolationIds.map(({candidateId:Oe})=>Oe),a.id,"candidate",i);return i}function ge(e,i){for(let n of e.bindings)for(let r of e.providerPolicies){if(n.providerClass&&(r.deniedProviderClasses.includes(n.providerClass)||r.allowedProviderClasses.length>0&&!r.allowedProviderClasses.includes(n.providerClass)))i.push(h("provider_denied",`${n.id} uses provider class denied by ${r.id}.`));if(!r.residencyRegions.includes(n.region))i.push(h("residency_denied",`${n.id} uses region outside ${r.id}.`))}}function _e(e){let i=[];return Ze(e,i),ge(e,i),Be(e,i),Ge(e,i),Le(e,i),He(e,i),ue(e,i),i}function Ze(e,i){for(let n of e.providerPolicies){Ie(n.allowedProviderClasses,n.deniedProviderClasses,n.id,"provider class",i),Ie(n.requiredCapabilities,n.deniedCapabilities,n.id,"capability",i);let r=new Set(e.restrictions.map(({id:s})=>s));for(let s of n.nonWaivableRestrictionIds)if(!r.has(s))i.push(h("missing_reference",`${n.id} references missing restriction ${s}.`))}}function Be(e,i){let n=new Map(e.waivers.map((s)=>[s.id,s])),r=new Set(e.providerPolicies.flatMap(({nonWaivableRestrictionIds:s})=>s));for(let s of e.waivers){if(r.has(s.restrictionId))i.push(h("non_waivable",`${s.id} targets non-waivable restriction ${s.restrictionId}.`));if(Date.parse(s.expiresAt)<=Date.parse(s.issuedAt))i.push(h("invalid_expiry",`${s.id} must expire after issuance.`));if(!s.inheritedFromWaiverId)continue;let o=n.get(s.inheritedFromWaiverId);if(!o){i.push(h("missing_reference",`${s.id} references missing parent waiver.`));continue}if(o.restrictionId!==s.restrictionId)i.push(h("waiver_broadened",`${s.id} must inherit the same restriction.`));if(Date.parse(s.expiresAt)>Date.parse(o.expiresAt))i.push(h("waiver_broadened",`${s.id} may not outlive parent ${o.id}.`));if(!ve(s.scope.architectureIds,o.scope.architectureIds)||!ve(s.scope.environmentIds,o.scope.environmentIds))i.push(h("waiver_broadened",`${s.id} may only tighten parent ${o.id} scope.`))}}function Ge(e,i){let n=new Map(e.candidates.map((r)=>[r.id,r]));for(let r of e.comparisons){let s=r.candidateIds.flatMap((c)=>{let _=n.get(c);return _?[_]:[]}),o=L(s);if(!he(o.rejectedCandidateIds,r.rejectedCandidateIds))i.push(h("comparison_mismatch",`${r.id} hard-violation rejection is not deterministic.`));if(!he(o.paretoCandidateIds,r.paretoCandidateIds))i.push(h("comparison_mismatch",`${r.id} Pareto frontier is not deterministic.`));if(r.selectedCandidateId&&!o.paretoCandidateIds.includes(r.selectedCandidateId))i.push(h("invalid_selection",`${r.id} must select from its Pareto frontier.`))}}function Le(e,i){let n=new Set(e.unsatisfiableReports.flatMap(({candidateViolationIds:o})=>o.map(({candidateId:c})=>c))),r=new Set(e.comparisons.flatMap(({candidateIds:o})=>o)),s=e.candidates.filter(({id:o})=>r.has(o)).every(({hardViolationIds:o})=>o.length>0);if(r.size>0&&s){for(let o of r)if(!n.has(o))i.push(h("unsatisfiable_report_required",`Hard-invalid candidate ${o} requires an unsatisfiable report.`))}}function He(e,i){let n=new Map(e.handoffPackets.map((r)=>[r.id,r]));for(let r of e.handoffPackets)if(Date.parse(r.expiresAt)<=Date.parse(r.issuedAt))i.push(h("invalid_expiry",`${r.id} must expire after issuance.`));for(let r of e.handoffReceipts){let s=n.get(r.packetId);if(s&&r.receivedDigest!==s.contractDigest)i.push(h("digest_mismatch",`${r.id} does not acknowledge packet digest.`))}}function Ie(e,i,n,r,s){for(let o of e)if(i.includes(o))s.push(h("policy_conflict",`${n} both allows/requires and denies ${r} ${o}.`))}function ve(e,i){return e.every((n)=>i.includes(n))}function he(e,i){return e.length===i.length&&e.every((n,r)=>n===i[r])}var Fe=/(?:api[_-]?key|client[_-]?secret|private[_-]?key|password|bearer\s+|sk-[a-z0-9]|ghp_[a-z0-9])/i,Ue=/(?:aws_access_key|service_account_json|azure_client_secret|provider[_-]?config|kubeconfig)/i;class be extends Error{issues;constructor(e){super("Infrastructure intent V2 is invalid");this.issues=e;this.name="InfrastructureIntentValidationError"}}function Ne(e){let i=fe.safeParse(e);if(!i.success)return i.error.issues.map((s)=>({code:"schema_invalid",message:s.message,path:s.path.join(".")}));let n=[...ye(i.data),..._e(i.data)],r=JSON.stringify(i.data);if(Fe.test(r))n.push({code:"secret_material",message:"Infrastructure intent must not contain credentials or secret values."});if(Ue.test(r))n.push({code:"provider_config",message:"Infrastructure intent must not contain provider configuration material."});return n}function wi(e){let i=Ne(e);if(i.length>0)throw new be(i)}import{z as t}from"zod";var C=t.object({id:t.string().min(1),kind:t.string().min(1),version:t.string().min(1).optional()}),Je=C.extend({kind:t.literal("progressive_delivery_rollout")}),D=C.extend({kind:t.literal("progressive_delivery_rollback")}),M=C.extend({kind:t.literal("observability_metric")}),Ke=C.extend({kind:t.literal("observability_trace")}),Qe=C.extend({kind:t.literal("observability_log")}),Re=C.extend({kind:t.literal("job_schedule")}),Se=C.extend({kind:t.literal("integration_capability")}),Xe=C.extend({kind:t.literal("companyos_policy_gate")}),w=C.extend({kind:t.literal("companyos_owner")}),Ye=C.extend({kind:t.literal("orchestration_workflow")}),et=C.extend({kind:t.literal("cost_budget")}),tt=C.extend({kind:t.literal("metering_usage")}),it=t.object({id:t.string().min(1),name:t.string().min(1),tier:t.enum(["development","preview","staging","production"]),ownerRef:w}),rt=t.object({id:t.string().min(1),type:t.enum(["web","api","worker","job","database","edge","custom"]),capabilityRefs:t.array(Se).default([])}),nt=t.object({id:t.string().min(1),name:t.string().min(1),runtimeTargetId:t.string().min(1),ownerRef:w}),at=t.object({id:t.string().min(1),serviceId:t.string().min(1),kind:t.enum(["health","readiness","liveness"]),metricRef:M}),ot=t.object({id:t.string().min(1),serviceId:t.string().min(1),objective:t.string().min(1),threshold:t.string().min(1),metricRefs:t.array(M).min(1),ownerRef:w}),st=t.object({id:t.string().min(1),serviceId:t.string().min(1),metricRefs:t.array(M).min(1),traceRefs:t.array(Ke).default([]),logRefs:t.array(Qe).default([])}),ct=t.object({id:t.string().min(1),sourceRef:t.string().min(1),action:t.string().min(1),actorRef:w,targetRef:t.string().min(1),outcome:t.enum(["planned","approved","succeeded","failed","mitigated"]),observedAt:t.string().min(1)}),dt=t.object({id:t.string().min(1),policyGateRef:Xe,ownerRef:w,requiredFor:t.array(t.string().min(1)).min(1)}),lt=t.object({id:t.string().min(1),jobScheduleRef:Re,capabilityRefs:t.array(Se).default([]),ownerRef:w}),pt=t.object({id:t.string().min(1),serviceId:t.string().min(1),windowRef:t.string().min(1),rollbackRef:D,ownerRef:w,evidenceReceiptIds:t.array(t.string().min(1)).min(1)}),mt=t.object({id:t.string().min(1),environmentId:t.string().min(1),serviceId:t.string().min(1),pipelineId:t.string().min(1),rolloutRef:Je,rollbackRef:D,approvalRequirementId:t.string().min(1),healthCheckIds:t.array(t.string().min(1)).min(1),sloIds:t.array(t.string().min(1)).min(1),evidenceReceiptIds:t.array(t.string().min(1)).min(1),highRisk:t.boolean().default(!1)}),ft=t.object({id:t.string().min(1),deploymentId:t.string().min(1),rollbackRef:D,priorEvidenceReceiptId:t.string().min(1)}),ut=t.object({id:t.string().min(1),deploymentId:t.string().min(1),version:t.string().min(1),orchestrationRef:Ye}),yt=t.object({id:t.string().min(1),serviceId:t.string().min(1),severity:t.enum(["low","medium","high","critical"]),monitorId:t.string().min(1),sloId:t.string().min(1)}),gt=t.object({id:t.string().min(1),serviceId:t.string().min(1),ownerRef:w,scheduleRef:Re}),It=t.object({id:t.string().min(1),incidentId:t.string().min(1),onCallId:t.string().min(1),ownerRef:w}),vt=t.object({id:t.string().min(1),incidentId:t.string().min(1),ownerRef:w,evidenceReceiptIds:t.array(t.string().min(1)).min(1),followUpRefs:t.array(t.string().min(1)).min(1)}),ht=t.object({id:t.string().min(1),alertId:t.string().min(1),environmentId:t.string().min(1),serviceId:t.string().min(1),severity:t.enum(["low","medium","high","critical"]),escalationId:t.string().min(1),mitigationOwnerRef:w,postmortemId:t.string().min(1),evidenceReceiptIds:t.array(t.string().min(1)).min(1)}),_t=t.object({id:t.string().min(1),serviceId:t.string().min(1),expectedLoad:t.string().min(1),thresholds:t.array(t.string().min(1)).min(1),ownerRef:w,evidenceReceiptIds:t.array(t.string().min(1)).min(1)}),bt=t.object({id:t.string().min(1),serviceId:t.string().min(1),budgetRef:et,usageRef:tt,thresholds:t.array(t.string().min(1)).min(1),ownerRef:w}),Rt=t.object({id:t.string().min(1),purpose:t.string().min(1),ref:t.string().min(1),ownerRef:w}),St=t.object({id:t.string().min(1),serviceId:t.string().min(1),level:t.enum(["low","medium","high","critical"]),mitigationRef:t.string().min(1),ownerRef:w}),xe=t.object({id:t.string().min(1),version:t.string().min(1),environments:t.array(it).min(1),runtimeTargets:t.array(rt).min(1),services:t.array(nt).min(1),pipelines:t.array(lt).default([]),migrationWindows:t.array(pt).default([]),deployments:t.array(mt).default([]),releases:t.array(ut).default([]),rollbacks:t.array(ft).default([]),healthChecks:t.array(at).default([]),slos:t.array(ot).default([]),monitors:t.array(st).default([]),alerts:t.array(yt).default([]),onCall:t.array(gt).default([]),escalations:t.array(It).default([]),incidents:t.array(ht).default([]),postmortems:t.array(vt).default([]),capacityPlans:t.array(_t).default([]),costBudgets:t.array(bt).default([]),secretRefs:t.array(Rt).default([]),operationalRisks:t.array(St).default([]),approvalRequirements:t.array(dt).default([]),evidenceReceipts:t.array(ct).default([])});class we extends Error{issues;constructor(e,i){super(e);this.issues=i;this.name="InfraOpsValidationError"}}var xt=/(api[_-]?key|secret[_-]?access|private[_-]?key|token=|password=|bearer\s+[a-z0-9]|sk-[a-z0-9])/i,wt=/(aws_access_key|gcp_service_account|azure_client_secret|vercel_token|cloudflare_api_token|kubeconfig|providerConfig|provider_config)/i;function kt(e){let i=xe.safeParse(e);if(!i.success)return i.error.issues.map((o)=>({level:"error",message:o.message,context:{path:o.path.join(".")}}));let n=[],r=new Set(e.evidenceReceipts.map((o)=>o.id)),s=new Set(e.deployments.map((o)=>o.id));return Ct(e,n),Pt(e,r,n),qt(e,s,r,n),At(e,r,n),Ot(e,r,n),Vt(e,r,n),jt(e,n),n}function Ai(e){let i=kt(e);if(i.filter((r)=>r.level==="error").length>0)throw new we(`Infra-ops spec ${e.id} is invalid`,i)}function Ct(e,i){let n=JSON.stringify(e);if(xt.test(n))i.push({level:"error",message:"Infra-ops specs must not contain secret values or credentials."});if(wt.test(n))i.push({level:"error",message:"Infra-ops specs must not contain provider config material."});for(let r of e.secretRefs)if(!r.ref.startsWith("secretref:"))i.push({level:"error",message:`Secret ref ${r.id} must use a redacted secretref: identifier.`})}function Pt(e,i,n){let r=new Set(e.approvalRequirements.map((c)=>c.id)),s=new Set(e.healthChecks.map((c)=>c.id)),o=new Set(e.slos.map((c)=>c.id));for(let c of e.deployments){if(!r.has(c.approvalRequirementId))n.push(k(`Deployment ${c.id} requires approval.`));if(!c.healthCheckIds.some((_)=>s.has(_)))n.push(k(`Deployment ${c.id} requires health checks.`));if(!c.sloIds.some((_)=>o.has(_)))n.push(k(`Deployment ${c.id} requires SLO refs.`));if(c.highRisk&&!e.releases.some((_)=>_.deploymentId===c.id))n.push(k(`Deployment ${c.id} requires orchestration context.`));for(let _ of c.evidenceReceiptIds)if(!i.has(_))n.push(k(`Deployment ${c.id} references missing evidence.`))}}function qt(e,i,n,r){for(let s of e.rollbacks){if(!i.has(s.deploymentId))r.push(k(`Rollback ${s.id} references missing deployment.`));if(!n.has(s.priorEvidenceReceiptId))r.push(k(`Rollback ${s.id} requires prior deployment evidence.`))}}function At(e,i,n){for(let r of e.migrationWindows)for(let s of r.evidenceReceiptIds)if(!i.has(s))n.push(k(`Migration window ${r.id} references missing evidence.`))}function Ot(e,i,n){let r=new Set(e.escalations.map((o)=>o.id)),s=new Set(e.postmortems.map((o)=>o.id));for(let o of e.incidents){if(!r.has(o.escalationId))n.push(k(`Incident ${o.id} requires escalation.`));if(!s.has(o.postmortemId))n.push(k(`Incident ${o.id} requires postmortem evidence.`));for(let c of o.evidenceReceiptIds)if(!i.has(c))n.push(k(`Incident ${o.id} references missing evidence.`))}}function Vt(e,i,n){for(let r of e.costBudgets)if(r.thresholds.length===0)n.push(k(`Cost budget ${r.id} requires thresholds.`));for(let r of e.capacityPlans){if(r.thresholds.length===0||r.expectedLoad.length===0)n.push(k(`Capacity plan ${r.id} requires load thresholds.`));for(let s of r.evidenceReceiptIds)if(!i.has(s))n.push(k(`Capacity plan ${r.id} references missing evidence.`))}}function jt(e,i){for(let n of e.evidenceReceipts)if(!n.sourceRef||!n.action||!n.targetRef)i.push(k(`Evidence receipt ${n.id} is incomplete.`))}function k(e){return{level:"error",message:e}}export{ae as ArchitectureCandidateSchema,oe as ArchitectureComparisonSchema,se as ArchitectureDecisionRecordSchema,le as ArchitectureEvolutionPlanSchema,De as ArchitectureScoreSchema,w as CompanyOsOwnerRefSchema,Xe as CompanyOsPolicyGateRefSchema,X as ConstraintWaiverSchema,et as CostBudgetRefSchema,Q as EvolutionPolicySchema,K as EvolutionTriggerSchema,yt as InfraAlertSpecSchema,dt as InfraApprovalRequirementSpecSchema,_t as InfraCapacityPlanSpecSchema,bt as InfraCostBudgetSpecSchema,mt as InfraDeploymentSpecSchema,it as InfraEnvironmentRefSchema,It as InfraEscalationSpecSchema,ct as InfraEvidenceReceiptSpecSchema,at as InfraHealthCheckSpecSchema,ht as InfraIncidentSpecSchema,pt as InfraMigrationWindowSpecSchema,st as InfraMonitorSpecSchema,gt as InfraOnCallSpecSchema,St as InfraOperationalRiskSpecSchema,xe as InfraOpsSpecSchema,we as InfraOpsValidationError,lt as InfraPipelineSpecSchema,vt as InfraPostmortemSpecSchema,ut as InfraReleaseSpecSchema,ft as InfraRollbackSpecSchema,rt as InfraRuntimeTargetRefSchema,Rt as InfraSecretRefSpecSchema,nt as InfraServiceRefSchema,ot as InfraSloSpecSchema,Te as InfrastructureCapabilityKindSchema,pe as InfrastructureHandoffPacketSchema,me as InfrastructureHandoffReceiptSchema,fe as InfrastructureIntentV2Schema,be as InfrastructureIntentValidationError,de as InfrastructurePlanSchema,Se as IntegrationCapabilityRefSchema,Re as JobScheduleRefSchema,N as LogicalArchitectureSchema,U as LogicalCapabilitySchema,tt as MeteringUsageRefSchema,Qe as ObservabilityLogRefSchema,M as ObservabilityMetricRefSchema,Ke as ObservabilityTraceRefSchema,J as OperationalBindingSchema,te as OperationalGoalSchema,ee as OperationalRequirementSchema,Ye as OrchestrationWorkflowRefSchema,re as PlatformRestrictionSchema,D as ProgressiveDeliveryRollbackRefSchema,Je as ProgressiveDeliveryRolloutRefSchema,ne as ProviderPolicySchema,ce as UnsatisfiableRequirementReportSchema,ie as WorkloadEnvelopeSchema,Ai as assertInfraOpsSpecValid,wi as assertInfrastructureIntentV2Valid,ze as canonicalizeInfrastructureIntent,L as compareArchitectureCandidates,zt as deploymentReleaseLoopFixture,Bt as digestInfrastructureIntent,$t as incidentLoopFixture,Ut as infrastructureIntentV2Fixture,kt as validateInfraOpsSpec,Ne as validateInfrastructureIntentV2};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{z as t}from"zod";var e=t.string().min(1),i=t.enum(["compute","database","cache","queue","object_storage","email","network","secrets","ci","observability"]),a=t.object({id:e,kind:i,purpose:e,requirementIds:t.array(e),dependsOnCapabilityIds:t.array(e)}).strict(),o=t.object({id:e,name:e,workloadEnvelopeId:e,capabilityIds:t.array(e).min(1),restrictionIds:t.array(e)}).strict(),n=t.object({id:e,architectureId:e,capabilityId:e,environmentId:e,targetClass:e,providerClass:e.optional(),region:e,evidenceRefs:t.array(e)}).strict(),c=t.object({id:e,metric:e,operator:t.enum(["gt","gte","lt","lte","eq"]),threshold:t.number().finite(),observationWindowMinutes:t.number().int().positive(),action:t.enum(["review","replan","migrate"])}).strict(),s=t.object({id:e,architectureId:e,triggerIds:t.array(e).min(1),minimumReviewIntervalDays:t.number().int().nonnegative(),allowedChangeKinds:t.array(t.enum(["scale","rebind","replace","retire"])).min(1),approvalRequirementIds:t.array(e)}).strict(),p=t.object({id:e,restrictionId:e,scope:t.object({architectureIds:t.array(e).min(1),environmentIds:t.array(e).min(1)}).strict(),reason:e,issuedAt:t.string().datetime({offset:!0}),expiresAt:t.string().datetime({offset:!0}),approvedByRef:e,inheritedFromWaiverId:e.optional()}).strict();export{p as ConstraintWaiverSchema,s as EvolutionPolicySchema,c as EvolutionTriggerSchema,i as InfrastructureCapabilityKindSchema,o as LogicalArchitectureSchema,a as LogicalCapabilitySchema,n as OperationalBindingSchema};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{createHash as o}from"node:crypto";function i(n){return JSON.stringify(e(n))}function c(n){let r=i(n);return`sha256:${o("sha256").update(r).digest("hex")}`}function e(n){if(n===null||typeof n==="string"||typeof n==="boolean")return n;if(typeof n==="number"){if(!Number.isFinite(n))throw TypeError("Cannot canonicalize number");return n}if(Array.isArray(n))return n.map(e);if(typeof n==="object")return Object.fromEntries(Object.entries(n).filter(([,r])=>r!==void 0).sort(([r],[t])=>r.localeCompare(t)).map(([r,t])=>[r,e(t)]));throw TypeError(`Cannot canonicalize ${typeof n}`)}export{i as canonicalizeInfrastructureIntent,c as digestInfrastructureIntent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var n=["cost","complexity","migrationRisk"],c=["reliability","performance","scalability","portability"];function l(o){let r=[...o].sort((e,t)=>e.id.localeCompare(t.id)),s=r.filter((e)=>e.hardViolationIds.length),i=r.filter((e)=>!e.hardViolationIds.length),a=i.filter((e)=>!i.some((t)=>t.id!==e.id&&d(t,e)));return{eligibleCandidateIds:i.map(({id:e})=>e),rejectedCandidateIds:s.map(({id:e})=>e),paretoCandidateIds:a.map(({id:e})=>e)}}function d(o,r){let s=n.every((t)=>o.scores[t]<=r.scores[t]),i=c.every((t)=>o.scores[t]>=r.scores[t]),a=n.some((t)=>o.scores[t]<r.scores[t]),e=c.some((t)=>o.scores[t]>r.scores[t]);return s&&i&&(a||e)}export{l as compareArchitectureCandidates};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{z as e}from"zod";var t=e.string().min(1),r=e.number().finite().nonnegative(),a=e.number().finite().positive(),i=e.number().finite().min(0).max(100),n=e.object({id:t,goalId:t,category:e.enum(["availability","capacity","cost","data","latency","operability","portability","recovery","security"]),description:t,criticality:e.enum(["hard","soft"]),measure:t.optional(),target:e.number().finite().optional(),unit:t.optional()}).strict(),c=e.object({id:t,statement:t,priority:e.enum(["low","medium","high","critical"]),requirementIds:e.array(t).min(1)}).strict(),s=e.object({id:t,concurrentUsers:r,requestsPerSecond:r,burstMultiplier:a,latencyP95Ms:a,availabilityPercent:i,dataVolumeGb:r,monthlyDataGrowthPercent:i,storageGb:r,monthlyEgressGb:r,backgroundJobsPerHour:r,rpoMinutes:r,rtoMinutes:r,regions:e.array(t).min(1),forecastMonths:e.number().int().positive(),annualTrafficGrowthPercent:i}).strict(),l=e.object({id:t,requirementId:t.optional(),scopeIds:e.array(t).min(1),kind:e.enum(["capability","compliance","cost","network","operability","residency","technology"]),rule:t,severity:e.enum(["hard","soft"]),rationale:t}).strict(),m=e.object({id:t,allowedProviderClasses:e.array(t),deniedProviderClasses:e.array(t),residencyRegions:e.array(t).min(1),portabilityMinimum:e.number().int().min(0).max(100),managedServicePosture:e.enum(["prefer_managed","allow_managed","self_managed_only"]),requiredCapabilities:e.array(t),deniedCapabilities:e.array(t),nonWaivableRestrictionIds:e.array(t)}).strict();export{c as OperationalGoalSchema,n as OperationalRequirementSchema,l as PlatformRestrictionSchema,m as ProviderPolicySchema,s as WorkloadEnvelopeSchema};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{z as t}from"zod";var e=t.string().min(1),r=t.number().finite().min(0).max(100),i=t.object({cost:r,reliability:r,performance:r,scalability:r,portability:r,complexity:r,migrationRisk:r}).strict(),c=t.object({id:e,architectureId:e,bindingIds:t.array(e).min(1),satisfiedRequirementIds:t.array(e),hardViolationIds:t.array(e),scores:i,assumptions:t.array(e)}).strict(),o=t.object({id:e,candidateIds:t.array(e).min(1),rejectedCandidateIds:t.array(e),paretoCandidateIds:t.array(e),selectedCandidateId:e.optional(),rationale:e}).strict(),n=t.object({id:e,title:e,status:t.enum(["proposed","accepted","superseded","rejected"]),comparisonId:e,selectedCandidateId:e,requirementIds:t.array(e).min(1),consequenceStatements:t.array(e).min(1),supersedesAdrId:e.optional(),decidedAt:t.string().datetime({offset:!0})}).strict(),s=t.object({id:e,requirementIds:t.array(e).min(1),candidateViolationIds:t.array(t.object({candidateId:e,violationIds:t.array(e).min(1)}).strict()).min(1),conflictExplanation:e,resolutionOptions:t.array(e).min(1),generatedAt:t.string().datetime({offset:!0})}).strict();export{c as ArchitectureCandidateSchema,o as ArchitectureComparisonSchema,n as ArchitectureDecisionRecordSchema,i as ArchitectureScoreSchema,s as UnsatisfiableRequirementReportSchema};
|