@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.
Files changed (52) hide show
  1. package/dist/index.d.ts +1 -0
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +4 -0
  4. package/dist/index.js.map +1 -1
  5. package/dist/modules/environments/EnvironmentProvisioningService.d.ts +64 -3
  6. package/dist/modules/environments/EnvironmentProvisioningService.d.ts.map +1 -1
  7. package/dist/modules/environments/EnvironmentProvisioningService.js +99 -1
  8. package/dist/modules/environments/EnvironmentProvisioningService.js.map +1 -1
  9. package/dist/modules/environments/HttpEnvironmentProvider.d.ts.map +1 -1
  10. package/dist/modules/environments/HttpEnvironmentProvider.js +11 -0
  11. package/dist/modules/environments/HttpEnvironmentProvider.js.map +1 -1
  12. package/dist/modules/environments/environmentDiagnostics.d.ts +51 -0
  13. package/dist/modules/environments/environmentDiagnostics.d.ts.map +1 -0
  14. package/dist/modules/environments/environmentDiagnostics.js +352 -0
  15. package/dist/modules/environments/environmentDiagnostics.js.map +1 -0
  16. package/dist/modules/environments/environmentReachability.d.ts +44 -0
  17. package/dist/modules/environments/environmentReachability.d.ts.map +1 -0
  18. package/dist/modules/environments/environmentReachability.js +86 -0
  19. package/dist/modules/environments/environmentReachability.js.map +1 -0
  20. package/dist/modules/environments/environmentRemediation.d.ts +53 -0
  21. package/dist/modules/environments/environmentRemediation.d.ts.map +1 -0
  22. package/dist/modules/environments/environmentRemediation.js +72 -0
  23. package/dist/modules/environments/environmentRemediation.js.map +1 -0
  24. package/dist/modules/environments/environments.logic.d.ts +37 -0
  25. package/dist/modules/environments/environments.logic.d.ts.map +1 -1
  26. package/dist/modules/environments/environments.logic.js +99 -0
  27. package/dist/modules/environments/environments.logic.js.map +1 -1
  28. package/dist/modules/kubernetes/KubernetesEnvironmentProvider.d.ts +25 -2
  29. package/dist/modules/kubernetes/KubernetesEnvironmentProvider.d.ts.map +1 -1
  30. package/dist/modules/kubernetes/KubernetesEnvironmentProvider.js +106 -21
  31. package/dist/modules/kubernetes/KubernetesEnvironmentProvider.js.map +1 -1
  32. package/dist/modules/kubernetes/KubernetesRunnerTransport.d.ts +43 -0
  33. package/dist/modules/kubernetes/KubernetesRunnerTransport.d.ts.map +1 -1
  34. package/dist/modules/kubernetes/KubernetesRunnerTransport.js +92 -3
  35. package/dist/modules/kubernetes/KubernetesRunnerTransport.js.map +1 -1
  36. package/dist/modules/kubernetes/kubernetes-diagnostics.d.ts +31 -0
  37. package/dist/modules/kubernetes/kubernetes-diagnostics.d.ts.map +1 -0
  38. package/dist/modules/kubernetes/kubernetes-diagnostics.js +350 -0
  39. package/dist/modules/kubernetes/kubernetes-diagnostics.js.map +1 -0
  40. package/dist/modules/kubernetes/kubernetes-environment.logic.d.ts +8 -1
  41. package/dist/modules/kubernetes/kubernetes-environment.logic.d.ts.map +1 -1
  42. package/dist/modules/kubernetes/kubernetes-environment.logic.js +18 -4
  43. package/dist/modules/kubernetes/kubernetes-environment.logic.js.map +1 -1
  44. package/dist/modules/kubernetes/kubernetes.logic.d.ts +60 -2
  45. package/dist/modules/kubernetes/kubernetes.logic.d.ts.map +1 -1
  46. package/dist/modules/kubernetes/kubernetes.logic.js +135 -2
  47. package/dist/modules/kubernetes/kubernetes.logic.js.map +1 -1
  48. package/dist/modules/shared/environmentBridge.d.ts +66 -0
  49. package/dist/modules/shared/environmentBridge.d.ts.map +1 -0
  50. package/dist/modules/shared/environmentBridge.js +78 -0
  51. package/dist/modules/shared/environmentBridge.js.map +1 -0
  52. 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"}