@cat-factory/integrations 0.167.0 → 0.169.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/modules/environments/EnvironmentProvisioningService.d.ts +64 -3
- package/dist/modules/environments/EnvironmentProvisioningService.d.ts.map +1 -1
- package/dist/modules/environments/EnvironmentProvisioningService.js +99 -1
- package/dist/modules/environments/EnvironmentProvisioningService.js.map +1 -1
- package/dist/modules/environments/HttpEnvironmentProvider.d.ts.map +1 -1
- package/dist/modules/environments/HttpEnvironmentProvider.js +11 -0
- package/dist/modules/environments/HttpEnvironmentProvider.js.map +1 -1
- package/dist/modules/environments/environmentDiagnostics.d.ts +51 -0
- package/dist/modules/environments/environmentDiagnostics.d.ts.map +1 -0
- package/dist/modules/environments/environmentDiagnostics.js +352 -0
- package/dist/modules/environments/environmentDiagnostics.js.map +1 -0
- package/dist/modules/environments/environmentReachability.d.ts +44 -0
- package/dist/modules/environments/environmentReachability.d.ts.map +1 -0
- package/dist/modules/environments/environmentReachability.js +86 -0
- package/dist/modules/environments/environmentReachability.js.map +1 -0
- package/dist/modules/environments/environmentRemediation.d.ts +53 -0
- package/dist/modules/environments/environmentRemediation.d.ts.map +1 -0
- package/dist/modules/environments/environmentRemediation.js +72 -0
- package/dist/modules/environments/environmentRemediation.js.map +1 -0
- package/dist/modules/environments/environments.logic.d.ts +37 -0
- package/dist/modules/environments/environments.logic.d.ts.map +1 -1
- package/dist/modules/environments/environments.logic.js +99 -0
- package/dist/modules/environments/environments.logic.js.map +1 -1
- package/dist/modules/kubernetes/KubernetesEnvironmentProvider.d.ts +25 -2
- package/dist/modules/kubernetes/KubernetesEnvironmentProvider.d.ts.map +1 -1
- package/dist/modules/kubernetes/KubernetesEnvironmentProvider.js +106 -21
- package/dist/modules/kubernetes/KubernetesEnvironmentProvider.js.map +1 -1
- package/dist/modules/kubernetes/KubernetesRunnerTransport.d.ts +43 -0
- package/dist/modules/kubernetes/KubernetesRunnerTransport.d.ts.map +1 -1
- package/dist/modules/kubernetes/KubernetesRunnerTransport.js +92 -3
- package/dist/modules/kubernetes/KubernetesRunnerTransport.js.map +1 -1
- package/dist/modules/kubernetes/kubernetes-diagnostics.d.ts +31 -0
- package/dist/modules/kubernetes/kubernetes-diagnostics.d.ts.map +1 -0
- package/dist/modules/kubernetes/kubernetes-diagnostics.js +350 -0
- package/dist/modules/kubernetes/kubernetes-diagnostics.js.map +1 -0
- package/dist/modules/kubernetes/kubernetes-environment.logic.d.ts +8 -1
- package/dist/modules/kubernetes/kubernetes-environment.logic.d.ts.map +1 -1
- package/dist/modules/kubernetes/kubernetes-environment.logic.js +18 -4
- package/dist/modules/kubernetes/kubernetes-environment.logic.js.map +1 -1
- package/dist/modules/kubernetes/kubernetes.logic.d.ts +60 -2
- package/dist/modules/kubernetes/kubernetes.logic.d.ts.map +1 -1
- package/dist/modules/kubernetes/kubernetes.logic.js +135 -2
- package/dist/modules/kubernetes/kubernetes.logic.js.map +1 -1
- package/dist/modules/shared/environmentBridge.d.ts +66 -0
- package/dist/modules/shared/environmentBridge.d.ts.map +1 -0
- package/dist/modules/shared/environmentBridge.js +78 -0
- package/dist/modules/shared/environmentBridge.js.map +1 -0
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpEnvironmentProvider.js","sourceRoot":"","sources":["../../../src/modules/environments/HttpEnvironmentProvider.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HttpEnvironmentProvider.js","sourceRoot":"","sources":["../../../src/modules/environments/HttpEnvironmentProvider.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { EnvironmentEvidenceBundle, EnvironmentFailureFacts, ProviderRemediationAction, ProvisioningLogRecord } from '@cat-factory/kernel';
|
|
2
|
+
import { type EnvironmentRemediatorDeps, type ResolvedEnvironmentProvider } from './environmentRemediation.js';
|
|
3
|
+
export type { ResolvedEnvironmentProvider };
|
|
4
|
+
/**
|
|
5
|
+
* Bound collaborators, supplied by the owning service (this holds no state of its own). Extends
|
|
6
|
+
* the remediator's, because both halves address the same row through the same provider seams.
|
|
7
|
+
*/
|
|
8
|
+
export interface EnvironmentDiagnosticsDeps extends EnvironmentRemediatorDeps {
|
|
9
|
+
/**
|
|
10
|
+
* The run's provisioning attempts, newest first, as the log controller reads them. Absent ⇒ the
|
|
11
|
+
* facade wires no provisioning log, and the bundle's timeline carries the registry row's own
|
|
12
|
+
* dates alone. Best-effort: a log read that throws is caught and NAMED in the timeline rather
|
|
13
|
+
* than dropping the whole investigation.
|
|
14
|
+
*/
|
|
15
|
+
listProvisioningLog?: (workspaceId: string, executionId: string) => Promise<ProvisioningLogRecord[]>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* What one gather produced: the model-facing bundle, plus what the SAME provider resolve says the
|
|
19
|
+
* provider will do if asked. Returned together rather than through two calls because resolving a
|
|
20
|
+
* provider opens the connection's sealed secrets, which is a `/internal/persistence` round trip
|
|
21
|
+
* for a mothership node.
|
|
22
|
+
*/
|
|
23
|
+
export interface EnvironmentEvidence {
|
|
24
|
+
bundle: EnvironmentEvidenceBundle;
|
|
25
|
+
providerActions: readonly ProviderRemediationAction[];
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* The failure the investigation is about, supplied by the caller (it is run state, not env
|
|
29
|
+
* state). Kernel's shape, re-exported here so the owning service can name it without importing
|
|
30
|
+
* the port twice.
|
|
31
|
+
*/
|
|
32
|
+
export type { EnvironmentFailureFacts };
|
|
33
|
+
export declare function createEnvironmentDiagnostics(deps: EnvironmentDiagnosticsDeps): {
|
|
34
|
+
collect: (args: {
|
|
35
|
+
workspaceId: string;
|
|
36
|
+
environmentId: string | null;
|
|
37
|
+
executionId?: string;
|
|
38
|
+
failure: EnvironmentFailureFacts;
|
|
39
|
+
}) => Promise<EnvironmentEvidence>;
|
|
40
|
+
remediate: (args: {
|
|
41
|
+
workspaceId: string;
|
|
42
|
+
environmentId: string;
|
|
43
|
+
action: ProviderRemediationAction;
|
|
44
|
+
}) => Promise<{
|
|
45
|
+
applied: boolean;
|
|
46
|
+
detail: string;
|
|
47
|
+
}>;
|
|
48
|
+
};
|
|
49
|
+
/** The diagnostics collaborator's public shape, so the owning service can type its member. */
|
|
50
|
+
export type EnvironmentDiagnostics = ReturnType<typeof createEnvironmentDiagnostics>;
|
|
51
|
+
//# sourceMappingURL=environmentDiagnostics.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environmentDiagnostics.d.ts","sourceRoot":"","sources":["../../../src/modules/environments/environmentDiagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,yBAAyB,EACzB,uBAAuB,EAGvB,yBAAyB,EAEzB,qBAAqB,EACtB,MAAM,qBAAqB,CAAA;AAQ5B,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EACjC,MAAM,6BAA6B,CAAA;AAmBpC,YAAY,EAAE,2BAA2B,EAAE,CAAA;AAE3C;;;GAGG;AACH,MAAM,WAAW,0BAA2B,SAAQ,yBAAyB;IAC3E;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,CACpB,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE,MAAM,KAChB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAA;CACtC;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,yBAAyB,CAAA;IACjC,eAAe,EAAE,SAAS,yBAAyB,EAAE,CAAA;CACtD;AAED;;;;GAIG;AACH,YAAY,EAAE,uBAAuB,EAAE,CAAA;AA+EvC,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,0BAA0B;oBAmB9C;QAC3B,WAAW,EAAE,MAAM,CAAA;QACnB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;QAC5B,WAAW,CAAC,EAAE,MAAM,CAAA;QACpB,OAAO,EAAE,uBAAuB,CAAA;KACjC,KAAG,OAAO,CAAC,mBAAmB,CAAC;;;;;;;;;EA6MjC;AAgBD,8FAA8F;AAC9F,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAA"}
|
|
@@ -0,0 +1,352 @@
|
|
|
1
|
+
import { describeError, getErrorMessage, noopLogger, redactSecretFields, redactSecrets, } from '@cat-factory/kernel';
|
|
2
|
+
import { createEnvironmentRemediator, } from './environmentRemediation.js';
|
|
3
|
+
/**
|
|
4
|
+
* How many provisioning-log rows enter the timeline. A run brings several containers up at once
|
|
5
|
+
* and the log is appended to in bursts, so the whole run's history would swamp the evidence the
|
|
6
|
+
* investigation is actually about; forty covers a fan-out of frames with their retries.
|
|
7
|
+
*/
|
|
8
|
+
const TIMELINE_ROW_CAP = 40;
|
|
9
|
+
/** Per-log-entry detail cap. The tail of a 40 KB apply error repeats one cause many times over. */
|
|
10
|
+
const TIMELINE_DETAIL_CAP = 600;
|
|
11
|
+
/**
|
|
12
|
+
* Cap on ONE diagnostic log excerpt, applied ON TOP of whatever the provider already did. The
|
|
13
|
+
* provider caps for its own transport; this caps for the prompt, and the two are different
|
|
14
|
+
* budgets. Stated on the excerpt when it bites, so a reader cannot mistake a cut log for one that
|
|
15
|
+
* genuinely ended there.
|
|
16
|
+
*/
|
|
17
|
+
const DIAGNOSTIC_LOG_CAP = 4000;
|
|
18
|
+
/**
|
|
19
|
+
* The rest of the bundle's budget. Everything a provider or a field bag can hand over is
|
|
20
|
+
* unbounded at the port: a namespace with thirty crash-looping pods and twenty warning events
|
|
21
|
+
* yields facts whose values embed whole Kubernetes condition messages, and a provider is free to
|
|
22
|
+
* have captured a rendered manifest into its field bag. The prompt is ONE string, so an uncapped
|
|
23
|
+
* section does not degrade the diagnosis, it costs the whole round: `generateText` rejects on
|
|
24
|
+
* context length, the investigation throws, and the budget is spent with nothing to show. That is
|
|
25
|
+
* the input-side twin of the truncated-verdict failure `MAX_OUTPUT_TOKENS` is sized against.
|
|
26
|
+
*
|
|
27
|
+
* Each cap is per SECTION rather than one running total, so a fat fact set cannot starve the
|
|
28
|
+
* provision fields of their share. Together with the log and timeline caps above the assembled
|
|
29
|
+
* bundle is bounded at roughly 147k characters (~37k tokens): 120x460 facts + 60x460 fields +
|
|
30
|
+
* 5x4000 logs + 40x440 gaps + 40x660 timeline. Every cut is STATED, in the values themselves
|
|
31
|
+
* where it is one value, and in the bundle's `evidenceCaps` where it is a whole entry.
|
|
32
|
+
*/
|
|
33
|
+
const DIAGNOSIS_FACT_CAP = 120;
|
|
34
|
+
const DIAGNOSIS_FACT_VALUE_CAP = 400;
|
|
35
|
+
const DIAGNOSIS_LOG_COUNT_CAP = 5;
|
|
36
|
+
const DIAGNOSIS_GAP_CAP = 40;
|
|
37
|
+
const DIAGNOSIS_GAP_REASON_CAP = 400;
|
|
38
|
+
const PROVISION_FIELD_CAP = 60;
|
|
39
|
+
const PROVISION_FIELD_VALUE_CAP = 400;
|
|
40
|
+
/**
|
|
41
|
+
* Why there is no environment record, in the three ways there can fail to be one.
|
|
42
|
+
*
|
|
43
|
+
* The read FAILING and the row being gone are kept apart for the reason every other degradation
|
|
44
|
+
* in here is: a transport error against the environment store and an environment that is genuinely
|
|
45
|
+
* no longer registered want opposite reactions, and an investigator shown the second concludes the
|
|
46
|
+
* environment was already reclaimed.
|
|
47
|
+
*/
|
|
48
|
+
function describeUnreadableEnvironment(environmentId, error) {
|
|
49
|
+
if (!environmentId) {
|
|
50
|
+
return 'The provision failed before an environment was recorded, so there is nothing to read.';
|
|
51
|
+
}
|
|
52
|
+
if (error) {
|
|
53
|
+
return (`Environment '${environmentId}' could not be READ from the registry (${error}), so nothing ` +
|
|
54
|
+
'about it could be gathered. This is a platform read failure, NOT evidence that the ' +
|
|
55
|
+
'environment is absent; treat it as UNKNOWN.');
|
|
56
|
+
}
|
|
57
|
+
return `Environment '${environmentId}' is no longer in the registry, so nothing could be read about it.`;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* What the bundle says when the provider itself could not be resolved (a connection deleted under
|
|
61
|
+
* the run, a manifest that no longer parses). Named as its own gap rather than folded into "the
|
|
62
|
+
* provider offers no diagnostics": one means nothing was asked because there was nobody to ask,
|
|
63
|
+
* the other that the question was asked and declined.
|
|
64
|
+
*/
|
|
65
|
+
const PROVIDER_UNRESOLVED = 'The provider for this environment could not be resolved, so nothing beyond the environment ' +
|
|
66
|
+
'record and its captured provision fields could be read. Treat the absence of provider facts ' +
|
|
67
|
+
'as UNKNOWN, never as healthy.';
|
|
68
|
+
export function createEnvironmentDiagnostics(deps) {
|
|
69
|
+
const log = (deps.logger ?? noopLogger).child({ scope: 'environmentDiagnostics' });
|
|
70
|
+
/**
|
|
71
|
+
* Gather everything the platform can say about a failed environment.
|
|
72
|
+
*
|
|
73
|
+
* Nothing in here may throw, full stop: this runs on the failure path of a run that has already
|
|
74
|
+
* gone wrong, and an investigation that cannot be assembled has to degrade to a thinner bundle
|
|
75
|
+
* rather than replace the run's real problem with its own. That includes the registry read the
|
|
76
|
+
* whole gather starts from, which is the one read that used to propagate: a transient store
|
|
77
|
+
* error there surfaced on the caller's poll path as an unreadable poll, and the run fast-failed
|
|
78
|
+
* as a timeout instead of ending on the provider error it actually had. Each read that fails is
|
|
79
|
+
* NAMED in the bundle it could not fill.
|
|
80
|
+
*
|
|
81
|
+
* The provider's declared remediations come back BESIDE the bundle rather than from a second
|
|
82
|
+
* call, because resolving a provider opens the connection's sealed secrets (a
|
|
83
|
+
* `/internal/persistence` round trip under mothership mode), and asking twice per round for two
|
|
84
|
+
* halves of the same resolve is two.
|
|
85
|
+
*/
|
|
86
|
+
async function collect(args) {
|
|
87
|
+
const { workspaceId, environmentId, executionId, failure } = args;
|
|
88
|
+
const read = await readRecordSafely(workspaceId, environmentId);
|
|
89
|
+
const record = read.record;
|
|
90
|
+
const timeline = await readTimeline(workspaceId, executionId, record);
|
|
91
|
+
if (!record) {
|
|
92
|
+
return {
|
|
93
|
+
providerActions: [],
|
|
94
|
+
bundle: {
|
|
95
|
+
environment: {
|
|
96
|
+
id: environmentId,
|
|
97
|
+
// Not `failed`: nothing was read, and a status invented here would be the one fact the
|
|
98
|
+
// investigation trusts most. The failure below is all that is actually known.
|
|
99
|
+
status: 'unknown',
|
|
100
|
+
url: null,
|
|
101
|
+
expiresAt: null,
|
|
102
|
+
lastError: null,
|
|
103
|
+
provisionType: null,
|
|
104
|
+
engine: null,
|
|
105
|
+
},
|
|
106
|
+
provisionFields: {},
|
|
107
|
+
timeline,
|
|
108
|
+
diagnosisUnavailable: describeUnreadableEnvironment(environmentId, read.error),
|
|
109
|
+
failure,
|
|
110
|
+
},
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
const fields = await readFields(record);
|
|
114
|
+
// STATED rather than left as an empty bag: a provision-field set that could not be decrypted
|
|
115
|
+
// and one the provider never captured look identical, and the first is a platform fault the
|
|
116
|
+
// investigation should be reasoning about rather than reasoning from.
|
|
117
|
+
if (fields.error) {
|
|
118
|
+
timeline.push({
|
|
119
|
+
at: null,
|
|
120
|
+
label: 'captured provision fields could not be decrypted',
|
|
121
|
+
detail: fields.error,
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
const provider = await resolveProviderSafely(record);
|
|
125
|
+
const diagnosis = provider ? await describeSafely(record, provider, fields.values) : null;
|
|
126
|
+
const caps = [];
|
|
127
|
+
const prepared = diagnosis?.diagnosis ? prepareDiagnosis(diagnosis.diagnosis, caps) : undefined;
|
|
128
|
+
return {
|
|
129
|
+
providerActions: declaredRemediations(provider),
|
|
130
|
+
bundle: {
|
|
131
|
+
environment: {
|
|
132
|
+
id: record.id,
|
|
133
|
+
status: record.status,
|
|
134
|
+
url: record.url,
|
|
135
|
+
expiresAt: record.expiresAt,
|
|
136
|
+
lastError: record.lastError ?? null,
|
|
137
|
+
provisionType: record.provisionType ?? null,
|
|
138
|
+
engine: record.engine ?? null,
|
|
139
|
+
},
|
|
140
|
+
provisionFields: prepareFields(fields.values, caps),
|
|
141
|
+
timeline,
|
|
142
|
+
...(prepared ? { diagnosis: prepared } : {}),
|
|
143
|
+
...(diagnosis?.unavailable ? { diagnosisUnavailable: diagnosis.unavailable } : {}),
|
|
144
|
+
...(provider ? {} : { diagnosisUnavailable: PROVIDER_UNRESOLVED }),
|
|
145
|
+
...(caps.length > 0 ? { evidenceCaps: caps } : {}),
|
|
146
|
+
failure,
|
|
147
|
+
},
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* The registry row, or the reason there is none. Guarded like every other read in here rather
|
|
152
|
+
* than trusted: it is the FIRST read, so a throw here loses the whole bundle AND, before this
|
|
153
|
+
* was wrapped, the caller's own failure path with it.
|
|
154
|
+
*/
|
|
155
|
+
async function readRecordSafely(workspaceId, environmentId) {
|
|
156
|
+
if (!environmentId)
|
|
157
|
+
return { record: null };
|
|
158
|
+
try {
|
|
159
|
+
return { record: await deps.readRecord(workspaceId, environmentId) };
|
|
160
|
+
}
|
|
161
|
+
catch (error) {
|
|
162
|
+
log.warn('could not read the environment record for an investigation', {
|
|
163
|
+
workspaceId,
|
|
164
|
+
environmentId,
|
|
165
|
+
...describeError(error),
|
|
166
|
+
});
|
|
167
|
+
return { record: null, error: getErrorMessage(error) };
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
async function readFields(record) {
|
|
171
|
+
try {
|
|
172
|
+
return { values: await deps.decryptFields(record) };
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
log.warn('could not decrypt provision fields for an environment investigation', {
|
|
176
|
+
workspaceId: record.workspaceId,
|
|
177
|
+
environmentId: record.id,
|
|
178
|
+
...describeError(error),
|
|
179
|
+
});
|
|
180
|
+
return { values: {}, error: getErrorMessage(error) };
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
async function resolveProviderSafely(record) {
|
|
184
|
+
try {
|
|
185
|
+
return await deps.resolveProvider(record);
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
log.warn('could not resolve the provider for an environment investigation', {
|
|
189
|
+
workspaceId: record.workspaceId,
|
|
190
|
+
environmentId: record.id,
|
|
191
|
+
...describeError(error),
|
|
192
|
+
});
|
|
193
|
+
return null;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
async function describeSafely(record, resolved, provisionFields) {
|
|
197
|
+
const diagnostics = resolved.provider.diagnostics;
|
|
198
|
+
if (!diagnostics) {
|
|
199
|
+
return {
|
|
200
|
+
unavailable: `The '${resolved.manifest.providerId}' provider implements no diagnostics, so nothing ` +
|
|
201
|
+
'beyond the environment record and its captured provision fields could be read. Treat ' +
|
|
202
|
+
'the absence of provider facts as UNKNOWN, never as healthy.',
|
|
203
|
+
};
|
|
204
|
+
}
|
|
205
|
+
try {
|
|
206
|
+
return {
|
|
207
|
+
diagnosis: await diagnostics.describe({
|
|
208
|
+
manifest: resolved.manifest,
|
|
209
|
+
externalId: record.externalId,
|
|
210
|
+
provisionFields,
|
|
211
|
+
resolveSecret: resolved.resolveSecret,
|
|
212
|
+
}),
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
return {
|
|
217
|
+
unavailable: `The provider's own diagnosis could not be read: ${getErrorMessage(error)}`,
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
async function readTimeline(workspaceId, executionId, record) {
|
|
222
|
+
const entries = [];
|
|
223
|
+
if (record) {
|
|
224
|
+
entries.push({ at: record.createdAt, label: 'environment record created' });
|
|
225
|
+
if (record.deletedAt) {
|
|
226
|
+
entries.push({ at: record.deletedAt, label: 'environment record tombstoned' });
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
const rows = await readLogRows(workspaceId, executionId ?? record?.executionId ?? undefined);
|
|
230
|
+
if (rows.failure) {
|
|
231
|
+
entries.push({ at: null, label: 'provisioning log could not be read', detail: rows.failure });
|
|
232
|
+
}
|
|
233
|
+
if (rows.dropped > 0) {
|
|
234
|
+
entries.push({
|
|
235
|
+
at: null,
|
|
236
|
+
label: `${rows.dropped} older provisioning-log rows for this run were not included`,
|
|
237
|
+
detail: `The timeline keeps the ${TIMELINE_ROW_CAP} most recent rows; the ones dropped are the OLDEST.`,
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
for (const row of rows.records) {
|
|
241
|
+
entries.push({
|
|
242
|
+
at: row.createdAt,
|
|
243
|
+
label: `${row.subsystem}.${row.operation} ${row.outcome}${row.targetId ? ` (${row.targetId})` : ''}`,
|
|
244
|
+
...(row.error || row.detail
|
|
245
|
+
? { detail: capText(row.error ?? row.detail ?? '', TIMELINE_DETAIL_CAP) }
|
|
246
|
+
: {}),
|
|
247
|
+
});
|
|
248
|
+
}
|
|
249
|
+
return entries.sort((a, b) => (a.at ?? 0) - (b.at ?? 0));
|
|
250
|
+
}
|
|
251
|
+
async function readLogRows(workspaceId, executionId) {
|
|
252
|
+
if (!deps.listProvisioningLog || !executionId)
|
|
253
|
+
return { records: [], dropped: 0 };
|
|
254
|
+
try {
|
|
255
|
+
const rows = await deps.listProvisioningLog(workspaceId, executionId);
|
|
256
|
+
// Newest first from the repository; the timeline reads oldest first, and the cap has to drop
|
|
257
|
+
// the OLDEST rows rather than the newest, which are the ones about this failure.
|
|
258
|
+
return {
|
|
259
|
+
records: rows.slice(0, TIMELINE_ROW_CAP),
|
|
260
|
+
dropped: Math.max(0, rows.length - TIMELINE_ROW_CAP),
|
|
261
|
+
};
|
|
262
|
+
}
|
|
263
|
+
catch (error) {
|
|
264
|
+
return { records: [], dropped: 0, failure: getErrorMessage(error) };
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
return { collect, remediate: createEnvironmentRemediator(deps) };
|
|
268
|
+
}
|
|
269
|
+
/**
|
|
270
|
+
* The remediations a resolved provider will actually perform. Empty for a provider that implements
|
|
271
|
+
* no diagnostics, or declares none, or declares some without the `remediate` that runs them. The
|
|
272
|
+
* three degrade identically ON PURPOSE, because the engine's question is "will something happen
|
|
273
|
+
* if I ask", and a half-declared capability answers no.
|
|
274
|
+
*/
|
|
275
|
+
function declaredRemediations(resolved) {
|
|
276
|
+
const diagnostics = resolved?.provider.diagnostics;
|
|
277
|
+
if (!diagnostics?.remediate)
|
|
278
|
+
return [];
|
|
279
|
+
return diagnostics.supportedActions ?? [];
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Make the provider's own account safe and BOUNDED for the prompt, recording every cut in `caps`.
|
|
283
|
+
*
|
|
284
|
+
* SCRUBBED here rather than trusted to the provider. The port's own docblock used to declare the
|
|
285
|
+
* excerpt "already capped and redacted BY THE PROVIDER", and that is the right thing to ASK of a
|
|
286
|
+
* provider (only it knows which of its fields carry credentials), but it cannot be the only line
|
|
287
|
+
* of defence: a diagnosis is mostly control-plane text the provider never authored (a pod log
|
|
288
|
+
* tail, a warning-event message, a Deployment condition), which is exactly where a bad DSN or a
|
|
289
|
+
* failed `Authorization` echo shows up. This is the boundary onto a model prompt and the telemetry
|
|
290
|
+
* store, so it applies the shape-based net over whatever the provider already did.
|
|
291
|
+
*
|
|
292
|
+
* Scrub BEFORE the cap, per CLAUDE.md's compose-time rule: capping first can leave the tail of a
|
|
293
|
+
* credential behind as the head of the kept slice.
|
|
294
|
+
*/
|
|
295
|
+
function prepareDiagnosis(diagnosis, caps) {
|
|
296
|
+
const factsDropped = Math.max(0, diagnosis.facts.length - DIAGNOSIS_FACT_CAP);
|
|
297
|
+
if (factsDropped > 0) {
|
|
298
|
+
caps.push(`The provider reported ${diagnosis.facts.length} facts; only the first ${DIAGNOSIS_FACT_CAP} ` +
|
|
299
|
+
`are below. ${factsDropped} were not included and are UNKNOWN, not absent.`);
|
|
300
|
+
}
|
|
301
|
+
const logs = (diagnosis.logs ?? []).slice(0, DIAGNOSIS_LOG_COUNT_CAP).map((entry) => {
|
|
302
|
+
const text = scrub(entry.text);
|
|
303
|
+
if (text.length <= DIAGNOSTIC_LOG_CAP)
|
|
304
|
+
return { ...entry, text };
|
|
305
|
+
// Capped from the TAIL: the end of a failing container's output is where the cause is, and a
|
|
306
|
+
// head cap would reliably keep the banner and drop the crash.
|
|
307
|
+
return { ...entry, text: text.slice(text.length - DIAGNOSTIC_LOG_CAP), truncated: true };
|
|
308
|
+
});
|
|
309
|
+
const logsDropped = (diagnosis.logs?.length ?? 0) - logs.length;
|
|
310
|
+
if (logsDropped > 0) {
|
|
311
|
+
caps.push(`${logsDropped} further provider log excerpts were not included.`);
|
|
312
|
+
}
|
|
313
|
+
const gaps = (diagnosis.gaps ?? [])
|
|
314
|
+
.slice(0, DIAGNOSIS_GAP_CAP)
|
|
315
|
+
.map((gap) => ({ ...gap, reason: capText(scrub(gap.reason), DIAGNOSIS_GAP_REASON_CAP) }));
|
|
316
|
+
const gapsDropped = (diagnosis.gaps?.length ?? 0) - gaps.length;
|
|
317
|
+
if (gapsDropped > 0) {
|
|
318
|
+
caps.push(`${gapsDropped} further reads the provider could not make were not listed.`);
|
|
319
|
+
}
|
|
320
|
+
return {
|
|
321
|
+
facts: diagnosis.facts
|
|
322
|
+
.slice(0, DIAGNOSIS_FACT_CAP)
|
|
323
|
+
.map((fact) => ({ ...fact, value: capText(scrub(fact.value), DIAGNOSIS_FACT_VALUE_CAP) })),
|
|
324
|
+
...(logs.length > 0 ? { logs } : {}),
|
|
325
|
+
...(gaps.length > 0 ? { gaps } : {}),
|
|
326
|
+
};
|
|
327
|
+
}
|
|
328
|
+
/**
|
|
329
|
+
* The captured field bag, scrubbed and bounded. The scrub is {@link redactSecretFields} rather
|
|
330
|
+
* than a plain one because the bag's KEY is the only context a value like `9f2c…` carries.
|
|
331
|
+
*/
|
|
332
|
+
function prepareFields(values, caps) {
|
|
333
|
+
const entries = Object.entries(redactSecretFields(values));
|
|
334
|
+
const kept = entries.slice(0, PROVISION_FIELD_CAP);
|
|
335
|
+
if (entries.length > kept.length) {
|
|
336
|
+
caps.push(`The provider captured ${entries.length} provision fields; only ${kept.length} are below ` +
|
|
337
|
+
'(the first by insertion order). The rest are UNKNOWN, not absent.');
|
|
338
|
+
}
|
|
339
|
+
return Object.fromEntries(kept.map(([key, value]) => [key, capText(value, PROVISION_FIELD_VALUE_CAP)]));
|
|
340
|
+
}
|
|
341
|
+
/** {@link redactSecrets} narrowed to the non-null case; it only returns null for a null input. */
|
|
342
|
+
function scrub(value) {
|
|
343
|
+
return redactSecrets(value) ?? '';
|
|
344
|
+
}
|
|
345
|
+
/** Head-capped text with the drop STATED, for a field whose beginning carries the meaning. */
|
|
346
|
+
function capText(value, cap) {
|
|
347
|
+
if (value.length <= cap)
|
|
348
|
+
return value;
|
|
349
|
+
const dropped = value.length - cap;
|
|
350
|
+
return `${value.slice(0, cap)} […${dropped} more characters were not included]`;
|
|
351
|
+
}
|
|
352
|
+
//# sourceMappingURL=environmentDiagnostics.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environmentDiagnostics.js","sourceRoot":"","sources":["../../../src/modules/environments/environmentDiagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Clock, EnvironmentAddress, EnvironmentReachability, EnvironmentRouteProof, RouteProbe } from '@cat-factory/kernel';
|
|
2
|
+
/**
|
|
3
|
+
* Dial an environment's name and then, in the provider's order, each address it stated for that
|
|
4
|
+
* name. Stops at the first target that CARRIES and publishes that one.
|
|
5
|
+
*
|
|
6
|
+
* Sequential rather than raced, deliberately. The provider's order is its own statement about
|
|
7
|
+
* which balancer it wants used (an internal one ahead of a public one, say), and racing would
|
|
8
|
+
* publish whichever answered fastest, which is a different question and one nobody asked. The cost
|
|
9
|
+
* is bounded by `MAX_PROBED_ADDRESSES` times the per-probe timeout, against a misdiagnosis that
|
|
10
|
+
* currently costs a whole tester step.
|
|
11
|
+
*
|
|
12
|
+
* With no prober wired the result is `unproved`, never a failure: a facade that cannot open a
|
|
13
|
+
* socket behaves exactly as it did before this existed.
|
|
14
|
+
*
|
|
15
|
+
* A target the plan REFUSED is recorded without a socket being opened. That is the one place the
|
|
16
|
+
* two kinds of target must not be conflated, and why the plan makes a refused one carry no
|
|
17
|
+
* request to dial.
|
|
18
|
+
*/
|
|
19
|
+
export declare function proveEnvironmentRoute(url: string | null | undefined, candidates: readonly EnvironmentAddress[], deps: {
|
|
20
|
+
probe?: RouteProbe;
|
|
21
|
+
clock: Clock;
|
|
22
|
+
}): Promise<EnvironmentRouteProof>;
|
|
23
|
+
/**
|
|
24
|
+
* Fold a provider's freshly stated addresses into what is already stored, and decide whether the
|
|
25
|
+
* proof beside them survives.
|
|
26
|
+
*
|
|
27
|
+
* **A provider that says nothing about addresses is not a provider stating none.** `addresses`
|
|
28
|
+
* absent means this response carried no statement (the manifest declares no `addressesPath`, or
|
|
29
|
+
* the call was one whose shape never carries addresses at all, like the no-`status`-template
|
|
30
|
+
* fallback); `[]` means it declared one and the provider answered with nothing. The distinction is
|
|
31
|
+
* the difference between keeping the candidate list and ERASING it, and erasing it is how the
|
|
32
|
+
* feature turns into a hard failure: the balancer list a provider states once on the CREATE
|
|
33
|
+
* response would be wiped by the first readiness poll, leaving the proof to dial only the name it
|
|
34
|
+
* already knows resolves nowhere and the deployer to settle the frame `failed`. Absent keeps what
|
|
35
|
+
* is stored; a statement replaces it. The same rule as everywhere else in this tree: absent is not
|
|
36
|
+
* empty.
|
|
37
|
+
*
|
|
38
|
+
* The proof survives only while BOTH inputs it was derived from are unchanged: the URL it dialled
|
|
39
|
+
* and the candidate list it drew from. Either moving means the stored verdict is about a target
|
|
40
|
+
* that no longer exists, and keeping it there is how a stale `reached` comes to vouch for an
|
|
41
|
+
* address the provider has since replaced. Dropping it costs one re-probe on the next settle.
|
|
42
|
+
*/
|
|
43
|
+
export declare function foldStatedAddresses(previous: EnvironmentReachability | null, previousUrl: string | null, addresses: readonly EnvironmentAddress[] | null | undefined, url: string | null): EnvironmentReachability | null;
|
|
44
|
+
//# sourceMappingURL=environmentReachability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environmentReachability.d.ts","sourceRoot":"","sources":["../../../src/modules/environments/environmentReachability.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,KAAK,EACL,kBAAkB,EAClB,uBAAuB,EAEvB,qBAAqB,EACrB,UAAU,EACX,MAAM,qBAAqB,CAAA;AAS5B;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,qBAAqB,CACzC,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAC9B,UAAU,EAAE,SAAS,kBAAkB,EAAE,EACzC,IAAI,EAAE;IAAE,KAAK,CAAC,EAAE,UAAU,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GACzC,OAAO,CAAC,qBAAqB,CAAC,CAgBhC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,uBAAuB,GAAG,IAAI,EACxC,WAAW,EAAE,MAAM,GAAG,IAAI,EAC1B,SAAS,EAAE,SAAS,kBAAkB,EAAE,GAAG,IAAI,GAAG,SAAS,EAC3D,GAAG,EAAE,MAAM,GAAG,IAAI,GACjB,uBAAuB,GAAG,IAAI,CAOhC"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
// Proving that a provisioned environment can be reached, and keeping the claim and the proof in
|
|
2
|
+
// step as the provider re-states one and the platform re-runs the other.
|
|
3
|
+
//
|
|
4
|
+
// The RULE lives in kernel (`planRouteProbes` / `reduceRouteProof`), which is also where the
|
|
5
|
+
// reasoning is: why the name is tried first, why the provider's order is kept for the addresses,
|
|
6
|
+
// which addresses the platform will not dial, and why an unwired prober records `unproved` rather
|
|
7
|
+
// than a failure. What lives here is the sequencing.
|
|
8
|
+
//
|
|
9
|
+
// Where the URL is turned into coordinates is `@cat-factory/contracts`
|
|
10
|
+
// (`deriveEnvironmentCoordinates`), the ONE deriver, shared with the Tester prompt that states
|
|
11
|
+
// those same coordinates to an agent. A second parser here would let the platform dial one host
|
|
12
|
+
// and tell the agent another.
|
|
13
|
+
import { deriveEnvironmentCoordinates } from '@cat-factory/contracts';
|
|
14
|
+
import { planRouteProbes, recordRefusedAttempt, recordRouteAttempt, reduceRouteProof, unprovedRoute, } from '@cat-factory/kernel';
|
|
15
|
+
/**
|
|
16
|
+
* Dial an environment's name and then, in the provider's order, each address it stated for that
|
|
17
|
+
* name. Stops at the first target that CARRIES and publishes that one.
|
|
18
|
+
*
|
|
19
|
+
* Sequential rather than raced, deliberately. The provider's order is its own statement about
|
|
20
|
+
* which balancer it wants used (an internal one ahead of a public one, say), and racing would
|
|
21
|
+
* publish whichever answered fastest, which is a different question and one nobody asked. The cost
|
|
22
|
+
* is bounded by `MAX_PROBED_ADDRESSES` times the per-probe timeout, against a misdiagnosis that
|
|
23
|
+
* currently costs a whole tester step.
|
|
24
|
+
*
|
|
25
|
+
* With no prober wired the result is `unproved`, never a failure: a facade that cannot open a
|
|
26
|
+
* socket behaves exactly as it did before this existed.
|
|
27
|
+
*
|
|
28
|
+
* A target the plan REFUSED is recorded without a socket being opened. That is the one place the
|
|
29
|
+
* two kinds of target must not be conflated, and why the plan makes a refused one carry no
|
|
30
|
+
* request to dial.
|
|
31
|
+
*/
|
|
32
|
+
export async function proveEnvironmentRoute(url, candidates, deps) {
|
|
33
|
+
const now = deps.clock.now();
|
|
34
|
+
if (!deps.probe)
|
|
35
|
+
return unprovedRoute(now);
|
|
36
|
+
const coords = deriveEnvironmentCoordinates(url);
|
|
37
|
+
const targets = planRouteProbes(coords?.host, coords?.port, candidates);
|
|
38
|
+
const attempts = [];
|
|
39
|
+
for (const target of targets) {
|
|
40
|
+
if (target.kind === 'refused') {
|
|
41
|
+
attempts.push(recordRefusedAttempt(target));
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
44
|
+
const outcome = await deps.probe(target.request);
|
|
45
|
+
attempts.push(recordRouteAttempt(target, outcome));
|
|
46
|
+
if (outcome.state === 'carried')
|
|
47
|
+
return reduceRouteProof(attempts, target.address, now);
|
|
48
|
+
}
|
|
49
|
+
return reduceRouteProof(attempts, null, now);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Fold a provider's freshly stated addresses into what is already stored, and decide whether the
|
|
53
|
+
* proof beside them survives.
|
|
54
|
+
*
|
|
55
|
+
* **A provider that says nothing about addresses is not a provider stating none.** `addresses`
|
|
56
|
+
* absent means this response carried no statement (the manifest declares no `addressesPath`, or
|
|
57
|
+
* the call was one whose shape never carries addresses at all, like the no-`status`-template
|
|
58
|
+
* fallback); `[]` means it declared one and the provider answered with nothing. The distinction is
|
|
59
|
+
* the difference between keeping the candidate list and ERASING it, and erasing it is how the
|
|
60
|
+
* feature turns into a hard failure: the balancer list a provider states once on the CREATE
|
|
61
|
+
* response would be wiped by the first readiness poll, leaving the proof to dial only the name it
|
|
62
|
+
* already knows resolves nowhere and the deployer to settle the frame `failed`. Absent keeps what
|
|
63
|
+
* is stored; a statement replaces it. The same rule as everywhere else in this tree: absent is not
|
|
64
|
+
* empty.
|
|
65
|
+
*
|
|
66
|
+
* The proof survives only while BOTH inputs it was derived from are unchanged: the URL it dialled
|
|
67
|
+
* and the candidate list it drew from. Either moving means the stored verdict is about a target
|
|
68
|
+
* that no longer exists, and keeping it there is how a stale `reached` comes to vouch for an
|
|
69
|
+
* address the provider has since replaced. Dropping it costs one re-probe on the next settle.
|
|
70
|
+
*/
|
|
71
|
+
export function foldStatedAddresses(previous, previousUrl, addresses, url) {
|
|
72
|
+
const stored = previous?.candidates ?? [];
|
|
73
|
+
const candidates = addresses ? [...addresses] : [...stored];
|
|
74
|
+
const unchanged = previousUrl === url && sameAddresses(stored, candidates);
|
|
75
|
+
const proof = unchanged ? (previous?.proof ?? null) : null;
|
|
76
|
+
if (candidates.length === 0 && !proof)
|
|
77
|
+
return null;
|
|
78
|
+
return { candidates, proof };
|
|
79
|
+
}
|
|
80
|
+
/** Whether two candidate lists name the same addresses in the same order (labels are cosmetic). */
|
|
81
|
+
function sameAddresses(a, b) {
|
|
82
|
+
if (a.length !== b.length)
|
|
83
|
+
return false;
|
|
84
|
+
return a.every((entry, index) => entry.address === b[index]?.address);
|
|
85
|
+
}
|
|
86
|
+
//# sourceMappingURL=environmentReachability.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environmentReachability.js","sourceRoot":"","sources":["../../../src/modules/environments/environmentReachability.ts"],"names":[],"mappings":"AAAA,gGAAgG;AAChG,yEAAyE;AACzE,EAAE;AACF,6FAA6F;AAC7F,iGAAiG;AACjG,kGAAkG;AAClG,qDAAqD;AACrD,EAAE;AACF,uEAAuE;AACvE,+FAA+F;AAC/F,gGAAgG;AAChG,8BAA8B;AAE9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,wBAAwB,CAAA;AASrE,OAAO,EACL,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,GACd,MAAM,qBAAqB,CAAA;AAE5B;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,GAA8B,EAC9B,UAAyC,EACzC,IAA0C;IAE1C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA;IAC5B,IAAI,CAAC,IAAI,CAAC,KAAK;QAAE,OAAO,aAAa,CAAC,GAAG,CAAC,CAAA;IAC1C,MAAM,MAAM,GAAG,4BAA4B,CAAC,GAAG,CAAC,CAAA;IAChD,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,CAAC,CAAA;IACvE,MAAM,QAAQ,GAA8B,EAAE,CAAA;IAC9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAA;YAC3C,SAAQ;QACV,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;QAChD,QAAQ,CAAC,IAAI,CAAC,kBAAkB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;QAClD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS;YAAE,OAAO,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;IACzF,CAAC;IACD,OAAO,gBAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAA;AAC9C,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,mBAAmB,CACjC,QAAwC,EACxC,WAA0B,EAC1B,SAA2D,EAC3D,GAAkB;IAElB,MAAM,MAAM,GAAG,QAAQ,EAAE,UAAU,IAAI,EAAE,CAAA;IACzC,MAAM,UAAU,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;IAC3D,MAAM,SAAS,GAAG,WAAW,KAAK,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAC1E,MAAM,KAAK,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;IAC1D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IAClD,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,CAAA;AAC9B,CAAC;AAED,mGAAmG;AACnG,SAAS,aAAa,CACpB,CAAgC,EAChC,CAAgC;IAEhC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;QAAE,OAAO,KAAK,CAAA;IACvC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;AACvE,CAAC"}
|