@apexops/contracts 0.10.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (101) hide show
  1. package/dist/.tsbuildinfo +1 -0
  2. package/dist/artifacts.d.ts +60 -0
  3. package/dist/artifacts.d.ts.map +1 -0
  4. package/dist/artifacts.js +46 -0
  5. package/dist/artifacts.js.map +1 -0
  6. package/dist/common.d.ts +22 -0
  7. package/dist/common.d.ts.map +1 -0
  8. package/dist/common.js +23 -0
  9. package/dist/common.js.map +1 -0
  10. package/dist/deployment.d.ts +100 -0
  11. package/dist/deployment.d.ts.map +1 -0
  12. package/dist/deployment.js +108 -0
  13. package/dist/deployment.js.map +1 -0
  14. package/dist/evidence.d.ts +256 -0
  15. package/dist/evidence.d.ts.map +1 -0
  16. package/dist/evidence.js +382 -0
  17. package/dist/evidence.js.map +1 -0
  18. package/dist/export-schemas.d.ts +2 -0
  19. package/dist/export-schemas.d.ts.map +1 -0
  20. package/dist/export-schemas.js +53 -0
  21. package/dist/export-schemas.js.map +1 -0
  22. package/dist/improvement.d.ts +92 -0
  23. package/dist/improvement.d.ts.map +1 -0
  24. package/dist/improvement.js +119 -0
  25. package/dist/improvement.js.map +1 -0
  26. package/dist/index.d.ts +983 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +128 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/onboarding.d.ts +15 -0
  31. package/dist/onboarding.d.ts.map +1 -0
  32. package/dist/onboarding.js +17 -0
  33. package/dist/onboarding.js.map +1 -0
  34. package/dist/pricing.d.ts +130 -0
  35. package/dist/pricing.d.ts.map +1 -0
  36. package/dist/pricing.js +355 -0
  37. package/dist/pricing.js.map +1 -0
  38. package/dist/runtime.d.ts +284 -0
  39. package/dist/runtime.d.ts.map +1 -0
  40. package/dist/runtime.js +196 -0
  41. package/dist/runtime.js.map +1 -0
  42. package/dist/schema-export.d.ts +15 -0
  43. package/dist/schema-export.d.ts.map +1 -0
  44. package/dist/schema-export.js +49 -0
  45. package/dist/schema-export.js.map +1 -0
  46. package/dist/targets.d.ts +359 -0
  47. package/dist/targets.d.ts.map +1 -0
  48. package/dist/targets.js +394 -0
  49. package/dist/targets.js.map +1 -0
  50. package/dist/test/contracts.test.d.ts +2 -0
  51. package/dist/test/contracts.test.d.ts.map +1 -0
  52. package/dist/test/contracts.test.js +867 -0
  53. package/dist/test/contracts.test.js.map +1 -0
  54. package/package.json +45 -0
  55. package/schemas/approval-evidence-v1.schema.json +172 -0
  56. package/schemas/architecture-availability-v1.schema.json +155 -0
  57. package/schemas/architecture-v1.schema.json +107 -0
  58. package/schemas/capability-pack-manifest-v1.schema.json +59 -0
  59. package/schemas/client-outcome-comparison-v1.schema.json +195 -0
  60. package/schemas/client-outcome-qualification-v1.schema.json +190 -0
  61. package/schemas/client-outcome-v1.schema.json +513 -0
  62. package/schemas/contract-metadata.json +232 -0
  63. package/schemas/cost-estimate-v1.schema.json +165 -0
  64. package/schemas/customization-lock-v1.schema.json +63 -0
  65. package/schemas/deployment-preview-v1.schema.json +180 -0
  66. package/schemas/diagnosis-v1.schema.json +111 -0
  67. package/schemas/environment-inputs-v1.schema.json +106 -0
  68. package/schemas/event-v1.schema.json +74 -0
  69. package/schemas/evidence-manifest-v1.schema.json +111 -0
  70. package/schemas/execution-plan-attestation-v1.schema.json +145 -0
  71. package/schemas/governance-constraints-v1.schema.json +103 -0
  72. package/schemas/iac-binding-v1.schema.json +74 -0
  73. package/schemas/iac-handoff-v1.schema.json +83 -0
  74. package/schemas/implementation-intent-v1.schema.json +89 -0
  75. package/schemas/improvement-decision-v1.schema.json +62 -0
  76. package/schemas/improvement-observation-v1.schema.json +166 -0
  77. package/schemas/improvement-policy-v1.schema.json +204 -0
  78. package/schemas/improvement-proposal-v1.schema.json +144 -0
  79. package/schemas/improvement-recurrence-v1.schema.json +130 -0
  80. package/schemas/input-request-v1.schema.json +242 -0
  81. package/schemas/input-submission-v1.schema.json +205 -0
  82. package/schemas/live-qualification-v1.schema.json +295 -0
  83. package/schemas/logical-resource-manifest-v1.schema.json +123 -0
  84. package/schemas/onboarding-config-v1.schema.json +59 -0
  85. package/schemas/operation-record-v1.schema.json +112 -0
  86. package/schemas/policy-property-map-v1.schema.json +108 -0
  87. package/schemas/pricing-evidence-v1.schema.json +628 -0
  88. package/schemas/pricing-request-v1.schema.json +424 -0
  89. package/schemas/project-config-v1.schema.json +43 -0
  90. package/schemas/quality-measurements-v1.schema.json +54 -0
  91. package/schemas/quality-report-v1.schema.json +114 -0
  92. package/schemas/quality-scorecard-v1.schema.json +109 -0
  93. package/schemas/requirements-v1.schema.json +108 -0
  94. package/schemas/resource-inventory-v1.schema.json +74 -0
  95. package/schemas/review-findings-v1.schema.json +126 -0
  96. package/schemas/run-config-v1.schema.json +133 -0
  97. package/schemas/runtime-bundle-lock-v1.schema.json +59 -0
  98. package/schemas/scenario-v1.schema.json +55 -0
  99. package/schemas/task-envelope-v1.schema.json +122 -0
  100. package/schemas/telemetry-v1.schema.json +117 -0
  101. package/schemas/workload-decision-manifest-v1.schema.json +320 -0
@@ -0,0 +1,284 @@
1
+ import { type Static } from "@sinclair/typebox";
2
+ export declare const RuntimeBundleLockV1Schema: import("@sinclair/typebox").TObject<{
3
+ schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
4
+ cliVersion: import("@sinclair/typebox").TString;
5
+ customizationVersion: import("@sinclair/typebox").TString;
6
+ workflowHash: import("@sinclair/typebox").TString;
7
+ defaultsHash: import("@sinclair/typebox").TString;
8
+ validatorHash: import("@sinclair/typebox").TString;
9
+ qualityScorecardHash: import("@sinclair/typebox").TString;
10
+ improvementPolicyHash: import("@sinclair/typebox").TString;
11
+ requiredCapabilityPacks: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
12
+ }>;
13
+ export declare const ProjectConfigV1Schema: import("@sinclair/typebox").TObject<{
14
+ schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
15
+ projectId: import("@sinclair/typebox").TString;
16
+ displayName: import("@sinclair/typebox").TString;
17
+ createdAt: import("@sinclair/typebox").TString;
18
+ defaultIacTool: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"bicep">, import("@sinclair/typebox").TLiteral<"terraform">]>;
19
+ }>;
20
+ export declare const GateStateSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"closed">, import("@sinclair/typebox").TLiteral<"open">, import("@sinclair/typebox").TLiteral<"approved">, import("@sinclair/typebox").TLiteral<"inherited">, import("@sinclair/typebox").TLiteral<"rejected">, import("@sinclair/typebox").TLiteral<"invalidated">]>;
21
+ export declare const GateRecordV1Schema: import("@sinclair/typebox").TObject<{
22
+ gate: import("@sinclair/typebox").TInteger;
23
+ state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"closed">, import("@sinclair/typebox").TLiteral<"open">, import("@sinclair/typebox").TLiteral<"approved">, import("@sinclair/typebox").TLiteral<"inherited">, import("@sinclair/typebox").TLiteral<"rejected">, import("@sinclair/typebox").TLiteral<"invalidated">]>;
24
+ dependencyHash: import("@sinclair/typebox").TString;
25
+ decidedAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
26
+ inheritedFromRunId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
27
+ reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
28
+ }>;
29
+ export declare const RunConfigV1Schema: import("@sinclair/typebox").TObject<{
30
+ schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
31
+ projectId: import("@sinclair/typebox").TString;
32
+ runId: import("@sinclair/typebox").TString;
33
+ environment: import("@sinclair/typebox").TString;
34
+ targetScope: import("@sinclair/typebox").TString;
35
+ iacTool: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"bicep">, import("@sinclair/typebox").TLiteral<"terraform">]>;
36
+ createdAt: import("@sinclair/typebox").TString;
37
+ runtimeLockHash: import("@sinclair/typebox").TString;
38
+ parentRunId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
39
+ ownerEpoch: import("@sinclair/typebox").TInteger;
40
+ gates: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
41
+ gate: import("@sinclair/typebox").TInteger;
42
+ state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"closed">, import("@sinclair/typebox").TLiteral<"open">, import("@sinclair/typebox").TLiteral<"approved">, import("@sinclair/typebox").TLiteral<"inherited">, import("@sinclair/typebox").TLiteral<"rejected">, import("@sinclair/typebox").TLiteral<"invalidated">]>;
43
+ dependencyHash: import("@sinclair/typebox").TString;
44
+ decidedAt: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
45
+ inheritedFromRunId: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
46
+ reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
47
+ }>>;
48
+ }>;
49
+ export declare const CapabilityGrantV1Schema: import("@sinclair/typebox").TObject<{
50
+ capability: import("@sinclair/typebox").TString;
51
+ sideEffect: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"none">, import("@sinclair/typebox").TLiteral<"local">, import("@sinclair/typebox").TLiteral<"remote">]>;
52
+ expiresAt: import("@sinclair/typebox").TString;
53
+ }>;
54
+ export declare const TaskEnvelopeV1Schema: import("@sinclair/typebox").TObject<{
55
+ schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
56
+ projectId: import("@sinclair/typebox").TString;
57
+ runId: import("@sinclair/typebox").TString;
58
+ taskId: import("@sinclair/typebox").TString;
59
+ role: import("@sinclair/typebox").TString;
60
+ taskType: import("@sinclair/typebox").TString;
61
+ expectedHead: import("@sinclair/typebox").TString;
62
+ ownerEpoch: import("@sinclair/typebox").TInteger;
63
+ createdAt: import("@sinclair/typebox").TString;
64
+ expiresAt: import("@sinclair/typebox").TString;
65
+ inputRefs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
66
+ allowedOutputKinds: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
67
+ capabilityGrants: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
68
+ capability: import("@sinclair/typebox").TString;
69
+ sideEffect: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"none">, import("@sinclair/typebox").TLiteral<"local">, import("@sinclair/typebox").TLiteral<"remote">]>;
70
+ expiresAt: import("@sinclair/typebox").TString;
71
+ }>>;
72
+ maxOutputBytes: import("@sinclair/typebox").TInteger;
73
+ }>;
74
+ export declare const QuestionV1Schema: import("@sinclair/typebox").TObject<{
75
+ id: import("@sinclair/typebox").TString;
76
+ prompt: import("@sinclair/typebox").TString;
77
+ options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
78
+ multiSelect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
79
+ valueType: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"budget">, import("@sinclair/typebox").TLiteral<"recovery">, import("@sinclair/typebox").TLiteral<"environment-set">, import("@sinclair/typebox").TLiteral<"data-classification">, import("@sinclair/typebox").TLiteral<"compliance">]>>;
80
+ }>;
81
+ export declare const DeferredInputValueV1Schema: import("@sinclair/typebox").TObject<{
82
+ kind: import("@sinclair/typebox").TLiteral<"deferred">;
83
+ owner: import("@sinclair/typebox").TString;
84
+ }>;
85
+ export declare const UnknownInputValueV1Schema: import("@sinclair/typebox").TObject<{
86
+ kind: import("@sinclair/typebox").TLiteral<"unknown">;
87
+ }>;
88
+ export declare const BudgetInputValueV1Schema: import("@sinclair/typebox").TObject<{
89
+ kind: import("@sinclair/typebox").TLiteral<"budget">;
90
+ amount: import("@sinclair/typebox").TNumber;
91
+ currency: import("@sinclair/typebox").TString;
92
+ cadence: import("@sinclair/typebox").TLiteral<"monthly">;
93
+ }>;
94
+ export declare const RecoveryInputValueV1Schema: import("@sinclair/typebox").TObject<{
95
+ kind: import("@sinclair/typebox").TLiteral<"recovery">;
96
+ rtoMinutes: import("@sinclair/typebox").TInteger;
97
+ rpoMinutes: import("@sinclair/typebox").TInteger;
98
+ }>;
99
+ export declare const ClassificationInputValueV1Schema: import("@sinclair/typebox").TObject<{
100
+ kind: import("@sinclair/typebox").TLiteral<"data-classification">;
101
+ classification: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"public">, import("@sinclair/typebox").TLiteral<"internal">, import("@sinclair/typebox").TLiteral<"confidential">, import("@sinclair/typebox").TLiteral<"restricted">]>;
102
+ }>;
103
+ export declare const ComplianceInputValueV1Schema: import("@sinclair/typebox").TObject<{
104
+ kind: import("@sinclair/typebox").TLiteral<"compliance">;
105
+ scopes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
106
+ }>;
107
+ export declare const InputValueV1Schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TObject<{
108
+ kind: import("@sinclair/typebox").TLiteral<"deferred">;
109
+ owner: import("@sinclair/typebox").TString;
110
+ }>, import("@sinclair/typebox").TObject<{
111
+ kind: import("@sinclair/typebox").TLiteral<"unknown">;
112
+ }>, import("@sinclair/typebox").TObject<{
113
+ kind: import("@sinclair/typebox").TLiteral<"budget">;
114
+ amount: import("@sinclair/typebox").TNumber;
115
+ currency: import("@sinclair/typebox").TString;
116
+ cadence: import("@sinclair/typebox").TLiteral<"monthly">;
117
+ }>, import("@sinclair/typebox").TObject<{
118
+ kind: import("@sinclair/typebox").TLiteral<"recovery">;
119
+ rtoMinutes: import("@sinclair/typebox").TInteger;
120
+ rpoMinutes: import("@sinclair/typebox").TInteger;
121
+ }>, import("@sinclair/typebox").TObject<{
122
+ kind: import("@sinclair/typebox").TLiteral<"data-classification">;
123
+ classification: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"public">, import("@sinclair/typebox").TLiteral<"internal">, import("@sinclair/typebox").TLiteral<"confidential">, import("@sinclair/typebox").TLiteral<"restricted">]>;
124
+ }>, import("@sinclair/typebox").TObject<{
125
+ kind: import("@sinclair/typebox").TLiteral<"compliance">;
126
+ scopes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
127
+ }>]>;
128
+ export declare const RequirementsIntakeRoundV1Schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"business-discovery">, import("@sinclair/typebox").TLiteral<"workload-pattern">, import("@sinclair/typebox").TLiteral<"service-preferences">, import("@sinclair/typebox").TLiteral<"security-compliance">]>;
129
+ export declare const RequirementsIntakeV1Schema: import("@sinclair/typebox").TObject<{
130
+ round: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"business-discovery">, import("@sinclair/typebox").TLiteral<"workload-pattern">, import("@sinclair/typebox").TLiteral<"service-preferences">, import("@sinclair/typebox").TLiteral<"security-compliance">]>;
131
+ ordinal: import("@sinclair/typebox").TInteger;
132
+ total: import("@sinclair/typebox").TLiteral<4>;
133
+ }>;
134
+ export declare const ArchitectureDecisionV1Schema: import("@sinclair/typebox").TObject<{
135
+ taskId: import("@sinclair/typebox").TString;
136
+ id: import("@sinclair/typebox").TString;
137
+ }>;
138
+ export declare const InputRequestV1Schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
139
+ schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
140
+ requestId: import("@sinclair/typebox").TString;
141
+ expectedHead: import("@sinclair/typebox").TString;
142
+ ownerEpoch: import("@sinclair/typebox").TInteger;
143
+ questions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
144
+ id: import("@sinclair/typebox").TString;
145
+ prompt: import("@sinclair/typebox").TString;
146
+ options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
147
+ multiSelect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
148
+ valueType: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"budget">, import("@sinclair/typebox").TLiteral<"recovery">, import("@sinclair/typebox").TLiteral<"environment-set">, import("@sinclair/typebox").TLiteral<"data-classification">, import("@sinclair/typebox").TLiteral<"compliance">]>>;
149
+ }>>;
150
+ intake: import("@sinclair/typebox").TObject<{
151
+ round: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"business-discovery">, import("@sinclair/typebox").TLiteral<"workload-pattern">, import("@sinclair/typebox").TLiteral<"service-preferences">, import("@sinclair/typebox").TLiteral<"security-compliance">]>;
152
+ ordinal: import("@sinclair/typebox").TInteger;
153
+ total: import("@sinclair/typebox").TLiteral<4>;
154
+ }>;
155
+ }>, import("@sinclair/typebox").TObject<{
156
+ schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
157
+ requestId: import("@sinclair/typebox").TString;
158
+ expectedHead: import("@sinclair/typebox").TString;
159
+ ownerEpoch: import("@sinclair/typebox").TInteger;
160
+ questions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
161
+ id: import("@sinclair/typebox").TString;
162
+ prompt: import("@sinclair/typebox").TString;
163
+ options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
164
+ multiSelect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
165
+ valueType: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"budget">, import("@sinclair/typebox").TLiteral<"recovery">, import("@sinclair/typebox").TLiteral<"environment-set">, import("@sinclair/typebox").TLiteral<"data-classification">, import("@sinclair/typebox").TLiteral<"compliance">]>>;
166
+ }>>;
167
+ decision: import("@sinclair/typebox").TObject<{
168
+ taskId: import("@sinclair/typebox").TString;
169
+ id: import("@sinclair/typebox").TString;
170
+ }>;
171
+ }>]>;
172
+ export declare const InputAnswerV1Schema: import("@sinclair/typebox").TObject<{
173
+ questionId: import("@sinclair/typebox").TString;
174
+ value: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TObject<{
175
+ kind: import("@sinclair/typebox").TLiteral<"deferred">;
176
+ owner: import("@sinclair/typebox").TString;
177
+ }>, import("@sinclair/typebox").TObject<{
178
+ kind: import("@sinclair/typebox").TLiteral<"unknown">;
179
+ }>, import("@sinclair/typebox").TObject<{
180
+ kind: import("@sinclair/typebox").TLiteral<"budget">;
181
+ amount: import("@sinclair/typebox").TNumber;
182
+ currency: import("@sinclair/typebox").TString;
183
+ cadence: import("@sinclair/typebox").TLiteral<"monthly">;
184
+ }>, import("@sinclair/typebox").TObject<{
185
+ kind: import("@sinclair/typebox").TLiteral<"recovery">;
186
+ rtoMinutes: import("@sinclair/typebox").TInteger;
187
+ rpoMinutes: import("@sinclair/typebox").TInteger;
188
+ }>, import("@sinclair/typebox").TObject<{
189
+ kind: import("@sinclair/typebox").TLiteral<"data-classification">;
190
+ classification: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"public">, import("@sinclair/typebox").TLiteral<"internal">, import("@sinclair/typebox").TLiteral<"confidential">, import("@sinclair/typebox").TLiteral<"restricted">]>;
191
+ }>, import("@sinclair/typebox").TObject<{
192
+ kind: import("@sinclair/typebox").TLiteral<"compliance">;
193
+ scopes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
194
+ }>]>;
195
+ }>;
196
+ export declare const InputSubmissionV1Schema: import("@sinclair/typebox").TObject<{
197
+ schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
198
+ requestId: import("@sinclair/typebox").TString;
199
+ expectedHead: import("@sinclair/typebox").TString;
200
+ ownerEpoch: import("@sinclair/typebox").TInteger;
201
+ answers: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
202
+ questionId: import("@sinclair/typebox").TString;
203
+ value: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>, import("@sinclair/typebox").TObject<{
204
+ kind: import("@sinclair/typebox").TLiteral<"deferred">;
205
+ owner: import("@sinclair/typebox").TString;
206
+ }>, import("@sinclair/typebox").TObject<{
207
+ kind: import("@sinclair/typebox").TLiteral<"unknown">;
208
+ }>, import("@sinclair/typebox").TObject<{
209
+ kind: import("@sinclair/typebox").TLiteral<"budget">;
210
+ amount: import("@sinclair/typebox").TNumber;
211
+ currency: import("@sinclair/typebox").TString;
212
+ cadence: import("@sinclair/typebox").TLiteral<"monthly">;
213
+ }>, import("@sinclair/typebox").TObject<{
214
+ kind: import("@sinclair/typebox").TLiteral<"recovery">;
215
+ rtoMinutes: import("@sinclair/typebox").TInteger;
216
+ rpoMinutes: import("@sinclair/typebox").TInteger;
217
+ }>, import("@sinclair/typebox").TObject<{
218
+ kind: import("@sinclair/typebox").TLiteral<"data-classification">;
219
+ classification: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"public">, import("@sinclair/typebox").TLiteral<"internal">, import("@sinclair/typebox").TLiteral<"confidential">, import("@sinclair/typebox").TLiteral<"restricted">]>;
220
+ }>, import("@sinclair/typebox").TObject<{
221
+ kind: import("@sinclair/typebox").TLiteral<"compliance">;
222
+ scopes: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
223
+ }>]>;
224
+ }>>;
225
+ }>;
226
+ export declare const TaskResultV1Schema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
227
+ schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
228
+ taskId: import("@sinclair/typebox").TString;
229
+ status: import("@sinclair/typebox").TLiteral<"completed">;
230
+ outputRefs: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>;
231
+ summary: import("@sinclair/typebox").TString;
232
+ }>, import("@sinclair/typebox").TObject<{
233
+ schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
234
+ taskId: import("@sinclair/typebox").TString;
235
+ status: import("@sinclair/typebox").TLiteral<"needs_input">;
236
+ questions: import("@sinclair/typebox").TArray<import("@sinclair/typebox").TObject<{
237
+ id: import("@sinclair/typebox").TString;
238
+ prompt: import("@sinclair/typebox").TString;
239
+ options: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TArray<import("@sinclair/typebox").TString>>;
240
+ multiSelect: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TBoolean>;
241
+ valueType: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"budget">, import("@sinclair/typebox").TLiteral<"recovery">, import("@sinclair/typebox").TLiteral<"environment-set">, import("@sinclair/typebox").TLiteral<"data-classification">, import("@sinclair/typebox").TLiteral<"compliance">]>>;
242
+ }>>;
243
+ }>, import("@sinclair/typebox").TObject<{
244
+ schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
245
+ taskId: import("@sinclair/typebox").TString;
246
+ status: import("@sinclair/typebox").TLiteral<"failed">;
247
+ errorCode: import("@sinclair/typebox").TString;
248
+ message: import("@sinclair/typebox").TString;
249
+ retryable: import("@sinclair/typebox").TBoolean;
250
+ }>]>;
251
+ export declare const EventV1Schema: import("@sinclair/typebox").TObject<{
252
+ schemaVersion: import("@sinclair/typebox").TLiteral<"1.0.0">;
253
+ eventId: import("@sinclair/typebox").TString;
254
+ projectId: import("@sinclair/typebox").TString;
255
+ runId: import("@sinclair/typebox").TString;
256
+ sequence: import("@sinclair/typebox").TInteger;
257
+ type: import("@sinclair/typebox").TString;
258
+ timestamp: import("@sinclair/typebox").TString;
259
+ ownerEpoch: import("@sinclair/typebox").TInteger;
260
+ previousHash: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TString, import("@sinclair/typebox").TNull]>;
261
+ payloadHash: import("@sinclair/typebox").TString;
262
+ payload: import("@sinclair/typebox").TUnknown;
263
+ hash: import("@sinclair/typebox").TString;
264
+ }>;
265
+ export type RuntimeBundleLockV1 = Static<typeof RuntimeBundleLockV1Schema>;
266
+ export type ProjectConfigV1 = Static<typeof ProjectConfigV1Schema>;
267
+ export type GateRecordV1 = Static<typeof GateRecordV1Schema>;
268
+ export type RunConfigV1 = Static<typeof RunConfigV1Schema>;
269
+ export type TaskEnvelopeV1 = Static<typeof TaskEnvelopeV1Schema>;
270
+ export type TaskResultV1 = Static<typeof TaskResultV1Schema>;
271
+ export type EventV1 = Static<typeof EventV1Schema>;
272
+ export type QuestionV1 = Static<typeof QuestionV1Schema>;
273
+ export type InputValueV1 = Static<typeof InputValueV1Schema>;
274
+ export type RequirementsIntakeRoundV1 = Static<typeof RequirementsIntakeRoundV1Schema>;
275
+ export type RequirementsIntakeV1 = Static<typeof RequirementsIntakeV1Schema>;
276
+ export type ArchitectureDecisionV1 = Static<typeof ArchitectureDecisionV1Schema>;
277
+ export type InputRequestV1 = Static<typeof InputRequestV1Schema> & {
278
+ intake?: RequirementsIntakeV1;
279
+ decision?: ArchitectureDecisionV1;
280
+ };
281
+ export type InputAnswerV1 = Static<typeof InputAnswerV1Schema>;
282
+ export type InputSubmissionV1 = Static<typeof InputSubmissionV1Schema>;
283
+ export declare function hasValidInputRequestQuestions(questions: QuestionV1[]): boolean;
284
+ //# sourceMappingURL=runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,196 @@
1
+ import { Type } from "@sinclair/typebox";
2
+ import { ContractVersionSchema, EnvironmentSchema, IacToolSchema, IsoDateTimeSchema, NonEmptyStringSchema, ProjectIdSchema, RunIdSchema, Sha256Schema, TaskIdSchema, } from "./common.js";
3
+ export const RuntimeBundleLockV1Schema = Type.Object({
4
+ schemaVersion: ContractVersionSchema,
5
+ cliVersion: NonEmptyStringSchema,
6
+ customizationVersion: NonEmptyStringSchema,
7
+ workflowHash: Sha256Schema,
8
+ defaultsHash: Sha256Schema,
9
+ validatorHash: Sha256Schema,
10
+ qualityScorecardHash: Sha256Schema,
11
+ improvementPolicyHash: Sha256Schema,
12
+ requiredCapabilityPacks: Type.Array(NonEmptyStringSchema, { uniqueItems: true }),
13
+ }, { $id: "https://schemas.apexops.dev/runtime-bundle-lock-v1.json", additionalProperties: false });
14
+ export const ProjectConfigV1Schema = Type.Object({
15
+ schemaVersion: ContractVersionSchema,
16
+ projectId: ProjectIdSchema,
17
+ displayName: NonEmptyStringSchema,
18
+ createdAt: IsoDateTimeSchema,
19
+ defaultIacTool: IacToolSchema,
20
+ }, { $id: "https://schemas.apexops.dev/project-config-v1.json", additionalProperties: false });
21
+ export const GateStateSchema = Type.Union([
22
+ Type.Literal("closed"),
23
+ Type.Literal("open"),
24
+ Type.Literal("approved"),
25
+ Type.Literal("inherited"),
26
+ Type.Literal("rejected"),
27
+ Type.Literal("invalidated"),
28
+ ]);
29
+ export const GateRecordV1Schema = Type.Object({
30
+ gate: Type.Integer({ minimum: 1, maximum: 4 }),
31
+ state: GateStateSchema,
32
+ dependencyHash: Sha256Schema,
33
+ decidedAt: Type.Optional(IsoDateTimeSchema),
34
+ inheritedFromRunId: Type.Optional(RunIdSchema),
35
+ reason: Type.Optional(NonEmptyStringSchema),
36
+ }, { additionalProperties: false });
37
+ export const RunConfigV1Schema = Type.Object({
38
+ schemaVersion: ContractVersionSchema,
39
+ projectId: ProjectIdSchema,
40
+ runId: RunIdSchema,
41
+ environment: EnvironmentSchema,
42
+ targetScope: NonEmptyStringSchema,
43
+ iacTool: IacToolSchema,
44
+ createdAt: IsoDateTimeSchema,
45
+ runtimeLockHash: Sha256Schema,
46
+ parentRunId: Type.Optional(RunIdSchema),
47
+ ownerEpoch: Type.Integer({ minimum: 1 }),
48
+ gates: Type.Array(GateRecordV1Schema, { minItems: 4, maxItems: 4 }),
49
+ }, { $id: "https://schemas.apexops.dev/run-config-v1.json", additionalProperties: false });
50
+ export const CapabilityGrantV1Schema = Type.Object({
51
+ capability: NonEmptyStringSchema,
52
+ sideEffect: Type.Union([Type.Literal("none"), Type.Literal("local"), Type.Literal("remote")]),
53
+ expiresAt: IsoDateTimeSchema,
54
+ }, { additionalProperties: false });
55
+ export const TaskEnvelopeV1Schema = Type.Object({
56
+ schemaVersion: ContractVersionSchema,
57
+ projectId: ProjectIdSchema,
58
+ runId: RunIdSchema,
59
+ taskId: TaskIdSchema,
60
+ role: NonEmptyStringSchema,
61
+ taskType: NonEmptyStringSchema,
62
+ expectedHead: Sha256Schema,
63
+ ownerEpoch: Type.Integer({ minimum: 1 }),
64
+ createdAt: IsoDateTimeSchema,
65
+ expiresAt: IsoDateTimeSchema,
66
+ inputRefs: Type.Array(Sha256Schema, { uniqueItems: true }),
67
+ allowedOutputKinds: Type.Array(NonEmptyStringSchema, { uniqueItems: true }),
68
+ capabilityGrants: Type.Array(CapabilityGrantV1Schema),
69
+ maxOutputBytes: Type.Integer({ minimum: 1 }),
70
+ }, { $id: "https://schemas.apexops.dev/task-envelope-v1.json", additionalProperties: false });
71
+ export const QuestionV1Schema = Type.Object({
72
+ id: NonEmptyStringSchema,
73
+ prompt: NonEmptyStringSchema,
74
+ options: Type.Optional(Type.Array(NonEmptyStringSchema, { minItems: 1, uniqueItems: true })),
75
+ multiSelect: Type.Optional(Type.Boolean()),
76
+ valueType: Type.Optional(Type.Union([
77
+ Type.Literal("budget"),
78
+ Type.Literal("recovery"),
79
+ Type.Literal("environment-set"),
80
+ Type.Literal("data-classification"),
81
+ Type.Literal("compliance"),
82
+ ])),
83
+ }, { additionalProperties: false });
84
+ export const DeferredInputValueV1Schema = Type.Object({ kind: Type.Literal("deferred"), owner: NonEmptyStringSchema }, { additionalProperties: false });
85
+ export const UnknownInputValueV1Schema = Type.Object({ kind: Type.Literal("unknown") }, { additionalProperties: false });
86
+ export const BudgetInputValueV1Schema = Type.Object({
87
+ kind: Type.Literal("budget"),
88
+ amount: Type.Number({ minimum: 0 }),
89
+ currency: Type.String({ pattern: "^[A-Z]{3}$" }),
90
+ cadence: Type.Literal("monthly"),
91
+ }, { additionalProperties: false });
92
+ export const RecoveryInputValueV1Schema = Type.Object({
93
+ kind: Type.Literal("recovery"),
94
+ rtoMinutes: Type.Integer({ minimum: 0 }),
95
+ rpoMinutes: Type.Integer({ minimum: 0 }),
96
+ }, { additionalProperties: false });
97
+ export const ClassificationInputValueV1Schema = Type.Object({
98
+ kind: Type.Literal("data-classification"),
99
+ classification: Type.Union([
100
+ Type.Literal("public"),
101
+ Type.Literal("internal"),
102
+ Type.Literal("confidential"),
103
+ Type.Literal("restricted"),
104
+ ]),
105
+ }, { additionalProperties: false });
106
+ export const ComplianceInputValueV1Schema = Type.Object({ kind: Type.Literal("compliance"), scopes: Type.Array(NonEmptyStringSchema, { minItems: 1, uniqueItems: true }) }, { additionalProperties: false });
107
+ export const InputValueV1Schema = Type.Union([
108
+ NonEmptyStringSchema,
109
+ Type.Array(NonEmptyStringSchema, { minItems: 1, uniqueItems: true }),
110
+ DeferredInputValueV1Schema,
111
+ UnknownInputValueV1Schema,
112
+ BudgetInputValueV1Schema,
113
+ RecoveryInputValueV1Schema,
114
+ ClassificationInputValueV1Schema,
115
+ ComplianceInputValueV1Schema,
116
+ ]);
117
+ export const RequirementsIntakeRoundV1Schema = Type.Union([
118
+ Type.Literal("business-discovery"),
119
+ Type.Literal("workload-pattern"),
120
+ Type.Literal("service-preferences"),
121
+ Type.Literal("security-compliance"),
122
+ ]);
123
+ export const RequirementsIntakeV1Schema = Type.Object({
124
+ round: RequirementsIntakeRoundV1Schema,
125
+ ordinal: Type.Integer({ minimum: 1, maximum: 4 }),
126
+ total: Type.Literal(4),
127
+ }, { additionalProperties: false });
128
+ export const ArchitectureDecisionV1Schema = Type.Object({
129
+ taskId: TaskIdSchema,
130
+ id: NonEmptyStringSchema,
131
+ }, { additionalProperties: false });
132
+ const InputRequestBaseV1Schema = {
133
+ schemaVersion: ContractVersionSchema,
134
+ requestId: TaskIdSchema,
135
+ expectedHead: Sha256Schema,
136
+ ownerEpoch: Type.Integer({ minimum: 1 }),
137
+ questions: Type.Array(QuestionV1Schema, { minItems: 1, uniqueItems: true }),
138
+ };
139
+ export const InputRequestV1Schema = Type.Union([
140
+ Type.Object({ ...InputRequestBaseV1Schema, intake: RequirementsIntakeV1Schema }, { additionalProperties: false }),
141
+ Type.Object({ ...InputRequestBaseV1Schema, decision: ArchitectureDecisionV1Schema }, { additionalProperties: false }),
142
+ ], { $id: "https://schemas.apexops.dev/input-request-v1.json" });
143
+ export const InputAnswerV1Schema = Type.Object({
144
+ questionId: NonEmptyStringSchema,
145
+ value: InputValueV1Schema,
146
+ }, { additionalProperties: false });
147
+ export const InputSubmissionV1Schema = Type.Object({
148
+ schemaVersion: ContractVersionSchema,
149
+ requestId: TaskIdSchema,
150
+ expectedHead: Sha256Schema,
151
+ ownerEpoch: Type.Integer({ minimum: 1 }),
152
+ answers: Type.Array(InputAnswerV1Schema, { minItems: 1 }),
153
+ }, { $id: "https://schemas.apexops.dev/input-submission-v1.json", additionalProperties: false });
154
+ export const TaskResultV1Schema = Type.Union([
155
+ Type.Object({
156
+ schemaVersion: ContractVersionSchema,
157
+ taskId: TaskIdSchema,
158
+ status: Type.Literal("completed"),
159
+ outputRefs: Type.Array(Sha256Schema),
160
+ summary: NonEmptyStringSchema,
161
+ }, { additionalProperties: false }),
162
+ Type.Object({
163
+ schemaVersion: ContractVersionSchema,
164
+ taskId: TaskIdSchema,
165
+ status: Type.Literal("needs_input"),
166
+ questions: Type.Array(QuestionV1Schema, { minItems: 1 }),
167
+ }, { additionalProperties: false }),
168
+ Type.Object({
169
+ schemaVersion: ContractVersionSchema,
170
+ taskId: TaskIdSchema,
171
+ status: Type.Literal("failed"),
172
+ errorCode: NonEmptyStringSchema,
173
+ message: NonEmptyStringSchema,
174
+ retryable: Type.Boolean(),
175
+ }, { additionalProperties: false }),
176
+ ]);
177
+ export const EventV1Schema = Type.Object({
178
+ schemaVersion: ContractVersionSchema,
179
+ eventId: NonEmptyStringSchema,
180
+ projectId: ProjectIdSchema,
181
+ runId: RunIdSchema,
182
+ sequence: Type.Integer({ minimum: 1 }),
183
+ type: NonEmptyStringSchema,
184
+ timestamp: IsoDateTimeSchema,
185
+ ownerEpoch: Type.Integer({ minimum: 1 }),
186
+ previousHash: Type.Union([Sha256Schema, Type.Null()]),
187
+ payloadHash: Sha256Schema,
188
+ payload: Type.Unknown(),
189
+ hash: Sha256Schema,
190
+ }, { $id: "https://schemas.apexops.dev/event-v1.json", additionalProperties: false });
191
+ export function hasValidInputRequestQuestions(questions) {
192
+ return (new Set(questions.map(({ id }) => id)).size === questions.length &&
193
+ questions.every(({ multiSelect, options }) => (multiSelect !== true || options !== undefined) &&
194
+ (options === undefined || (options.length > 0 && new Set(options).size === options.length))));
195
+ }
196
+ //# sourceMappingURL=runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runtime.js","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { TSchema } from "@sinclair/typebox";
2
+ import { type ContractMetadata } from "./index.js";
3
+ export declare const JSON_SCHEMA_DIALECT = "https://json-schema.org/draft/2020-12/schema";
4
+ export declare const CONTRACT_METADATA_FILENAME = "contract-metadata.json";
5
+ export interface ContractSchemaFile {
6
+ filename: string;
7
+ contents: string;
8
+ schema: TSchema;
9
+ }
10
+ export declare function serializeDeterministicJson(value: unknown): string;
11
+ export declare function contractSchemaFilename(schema: TSchema): string;
12
+ export declare function createPersistedContractSchema(schema: TSchema): TSchema;
13
+ export declare function createContractSchemaFiles(): readonly ContractSchemaFile[];
14
+ export declare function createContractMetadataFile(metadata?: Readonly<Record<string, ContractMetadata>>): string;
15
+ //# sourceMappingURL=schema-export.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-export.d.ts","sourceRoot":"","sources":["../src/schema-export.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAqC,KAAK,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAEtF,eAAO,MAAM,mBAAmB,iDAAiD,CAAC;AAClF,eAAO,MAAM,0BAA0B,2BAA2B,CAAC;AAEnE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB;AAgBD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEjE;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAY9D;AAED,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAEtE;AAED,wBAAgB,yBAAyB,IAAI,SAAS,kBAAkB,EAAE,CAWzE;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAoB,GACtE,MAAM,CAER"}
@@ -0,0 +1,49 @@
1
+ import { contractMetadata, contractSchemas } from "./index.js";
2
+ export const JSON_SCHEMA_DIALECT = "https://json-schema.org/draft/2020-12/schema";
3
+ export const CONTRACT_METADATA_FILENAME = "contract-metadata.json";
4
+ function sortJsonValue(value) {
5
+ if (Array.isArray(value)) {
6
+ return value.map(sortJsonValue);
7
+ }
8
+ if (value !== null && typeof value === "object") {
9
+ return Object.fromEntries(Object.entries(value)
10
+ .sort(([left], [right]) => left.localeCompare(right))
11
+ .map(([key, child]) => [key, sortJsonValue(child)]));
12
+ }
13
+ return value;
14
+ }
15
+ export function serializeDeterministicJson(value) {
16
+ return `${JSON.stringify(sortJsonValue(value), null, 2)}\n`;
17
+ }
18
+ export function contractSchemaFilename(schema) {
19
+ if (typeof schema.$id !== "string") {
20
+ throw new Error("Cannot export a contract schema without a string $id");
21
+ }
22
+ const basename = new URL(schema.$id).pathname
23
+ .split("/")
24
+ .at(-1)
25
+ ?.replace(/\.json$/, "");
26
+ if (!basename) {
27
+ throw new Error(`Cannot derive a schema filename from $id: ${schema.$id}`);
28
+ }
29
+ return `${basename}.schema.json`;
30
+ }
31
+ export function createPersistedContractSchema(schema) {
32
+ return { ...schema, $schema: JSON_SCHEMA_DIALECT };
33
+ }
34
+ export function createContractSchemaFiles() {
35
+ return contractSchemas
36
+ .map((schema) => {
37
+ const persistedSchema = createPersistedContractSchema(schema);
38
+ return {
39
+ filename: contractSchemaFilename(schema),
40
+ contents: serializeDeterministicJson(persistedSchema),
41
+ schema: persistedSchema,
42
+ };
43
+ })
44
+ .sort((left, right) => left.filename.localeCompare(right.filename));
45
+ }
46
+ export function createContractMetadataFile(metadata = contractMetadata) {
47
+ return serializeDeterministicJson(metadata);
48
+ }
49
+ //# sourceMappingURL=schema-export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-export.js","sourceRoot":"","sources":["../src/schema-export.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAyB,MAAM,YAAY,CAAC;AAEtF,MAAM,CAAC,MAAM,mBAAmB,GAAG,8CAA8C,CAAC;AAClF,MAAM,CAAC,MAAM,0BAA0B,GAAG,wBAAwB,CAAC;AAQnE,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAChD,OAAO,MAAM,CAAC,WAAW,CACvB,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;aAClB,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;aACpD,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CACtD,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAc;IACvD,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC;AAC9D,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,MAAe;IACpD,IAAI,OAAO,MAAM,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ;SAC1C,KAAK,CAAC,GAAG,CAAC;SACV,EAAE,CAAC,CAAC,CAAC,CAAC;QACP,EAAE,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,6CAA6C,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,GAAG,QAAQ,cAAc,CAAC;AACnC,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,MAAe;IAC3D,OAAO,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC;AACrD,CAAC;AAED,MAAM,UAAU,yBAAyB;IACvC,OAAO,eAAe;SACnB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;QACd,MAAM,eAAe,GAAG,6BAA6B,CAAC,MAAM,CAAC,CAAC;QAC9D,OAAO;YACL,QAAQ,EAAE,sBAAsB,CAAC,MAAM,CAAC;YACxC,QAAQ,EAAE,0BAA0B,CAAC,eAAe,CAAC;YACrD,MAAM,EAAE,eAAe;SACxB,CAAC;IACJ,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxE,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAAQ,GAA+C,gBAAgB;IAEvE,OAAO,0BAA0B,CAAC,QAAQ,CAAC,CAAC;AAC9C,CAAC"}