@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.
Files changed (64) hide show
  1. package/README.md +61 -0
  2. package/dist/fixtures-deployment.d.ts +249 -0
  3. package/dist/fixtures-deployment.js +2 -0
  4. package/dist/fixtures-incident.d.ts +219 -0
  5. package/dist/fixtures-incident.js +2 -0
  6. package/dist/fixtures.d.ts +2 -0
  7. package/dist/fixtures.js +2 -0
  8. package/dist/index.d.ts +8 -0
  9. package/dist/index.js +2 -0
  10. package/dist/infra-ops-spec.test.d.ts +1 -0
  11. package/dist/intent-architecture.d.ts +104 -0
  12. package/dist/intent-architecture.js +2 -0
  13. package/dist/intent-canonical.d.ts +4 -0
  14. package/dist/intent-canonical.js +2 -0
  15. package/dist/intent-comparison.d.ts +8 -0
  16. package/dist/intent-comparison.js +2 -0
  17. package/dist/intent-core.d.ts +98 -0
  18. package/dist/intent-core.js +2 -0
  19. package/dist/intent-decisions.d.ts +72 -0
  20. package/dist/intent-decisions.js +2 -0
  21. package/dist/intent-fixtures-decision.d.ts +4 -0
  22. package/dist/intent-fixtures-decision.js +2 -0
  23. package/dist/intent-fixtures.d.ts +3 -0
  24. package/dist/intent-fixtures.js +2 -0
  25. package/dist/intent-plans.d.ts +64 -0
  26. package/dist/intent-plans.js +2 -0
  27. package/dist/intent-types.d.ts +284 -0
  28. package/dist/intent-types.js +2 -0
  29. package/dist/intent-validation-bindings.d.ts +3 -0
  30. package/dist/intent-validation-bindings.js +2 -0
  31. package/dist/intent-validation-refs.d.ts +7 -0
  32. package/dist/intent-validation-refs.js +2 -0
  33. package/dist/intent-validation-rules.d.ts +3 -0
  34. package/dist/intent-validation-rules.js +2 -0
  35. package/dist/intent-validation-shared.d.ts +9 -0
  36. package/dist/intent-validation-shared.js +2 -0
  37. package/dist/intent-validation.d.ts +10 -0
  38. package/dist/intent-validation.js +2 -0
  39. package/dist/intent.test.d.ts +1 -0
  40. package/dist/node/fixtures-deployment.js +1 -0
  41. package/dist/node/fixtures-incident.js +1 -0
  42. package/dist/node/fixtures.js +1 -0
  43. package/dist/node/index.js +1 -0
  44. package/dist/node/intent-architecture.js +1 -0
  45. package/dist/node/intent-canonical.js +1 -0
  46. package/dist/node/intent-comparison.js +1 -0
  47. package/dist/node/intent-core.js +1 -0
  48. package/dist/node/intent-decisions.js +1 -0
  49. package/dist/node/intent-fixtures-decision.js +1 -0
  50. package/dist/node/intent-fixtures.js +1 -0
  51. package/dist/node/intent-plans.js +1 -0
  52. package/dist/node/intent-types.js +1 -0
  53. package/dist/node/intent-validation-bindings.js +1 -0
  54. package/dist/node/intent-validation-refs.js +1 -0
  55. package/dist/node/intent-validation-rules.js +1 -0
  56. package/dist/node/intent-validation-shared.js +1 -0
  57. package/dist/node/intent-validation.js +1 -0
  58. package/dist/node/types.js +1 -0
  59. package/dist/node/validation.js +1 -0
  60. package/dist/types.d.ts +748 -0
  61. package/dist/types.js +2 -0
  62. package/dist/validation.d.ts +13 -0
  63. package/dist/validation.js +2 -0
  64. 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,3 @@
1
+ import type { InfrastructureIntentV2 } from './intent-types.js';
2
+ import type { IntentValidationIssue } from './intent-validation-refs.js';
3
+ export declare function validateBindings(spec: InfrastructureIntentV2, issues: IntentValidationIssue[]): void;
@@ -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,3 @@
1
+ import type { InfrastructureIntentV2 } from './intent-types.js';
2
+ import type { IntentValidationIssue } from './intent-validation-refs.js';
3
+ export declare function validateIntentRules(spec: InfrastructureIntentV2): IntentValidationIssue[];
@@ -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};