@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
@@ -0,0 +1,53 @@
1
+ import type { EnvironmentManifest, EnvironmentProvider, EnvironmentRecord, Logger, ProviderRemediationAction, ProvisionFields, SecretResolver } from '@cat-factory/kernel';
2
+ /** The resolved provider trio a forensic call needs, exactly as the lifecycle paths resolve it. */
3
+ export interface ResolvedEnvironmentProvider {
4
+ manifest: EnvironmentManifest;
5
+ provider: EnvironmentProvider;
6
+ resolveSecret: SecretResolver;
7
+ }
8
+ /** One appended `remediate` row, as the owning service maps it onto the provisioning log. */
9
+ export interface EnvironmentRemediationLogRow {
10
+ workspaceId: string;
11
+ environmentId: string;
12
+ providerId: string;
13
+ blockId: string | null;
14
+ executionId: string | null;
15
+ outcome: 'success' | 'failure';
16
+ error: string | null;
17
+ detail: string;
18
+ }
19
+ /**
20
+ * What either forensic half needs to reach one environment's provider. Declared here and EXTENDED
21
+ * by the gatherer's deps, so the two cannot drift into addressing the same row through different
22
+ * seams.
23
+ */
24
+ export interface EnvironmentRemediatorDeps {
25
+ readRecord: (workspaceId: string, id: string) => Promise<EnvironmentRecord | null>;
26
+ resolveProvider: (record: EnvironmentRecord) => Promise<ResolvedEnvironmentProvider>;
27
+ decryptFields: (record: EnvironmentRecord) => Promise<ProvisionFields>;
28
+ /**
29
+ * Append the `remediate` row for a mutation this collaborator performed. Bound by the owning
30
+ * service, which is where the provisioning log's write seam lives; absent ⇒ this deployment
31
+ * keeps no provisioning log, exactly as for every other verb. Best-effort at the call site.
32
+ */
33
+ recordRemediation?: (row: EnvironmentRemediationLogRow) => Promise<void>;
34
+ logger?: Logger;
35
+ }
36
+ /**
37
+ * Ask the provider to remediate in place.
38
+ *
39
+ * Every outcome is APPENDED to the provisioning log before it is returned. This is the one call in
40
+ * the module that MUTATES a live cluster, and a mutation with no row of its own is invisible to the
41
+ * two readers that most need it: the investigation's own next round rebuilds its timeline from that
42
+ * log, so an unlogged restart leaves the second round reasoning about an environment it believes
43
+ * nothing has touched, and the operator's provisioning drawer never shows it either.
44
+ */
45
+ export declare function createEnvironmentRemediator(deps: EnvironmentRemediatorDeps): (args: {
46
+ workspaceId: string;
47
+ environmentId: string;
48
+ action: ProviderRemediationAction;
49
+ }) => Promise<{
50
+ applied: boolean;
51
+ detail: string;
52
+ }>;
53
+ //# sourceMappingURL=environmentRemediation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environmentRemediation.d.ts","sourceRoot":"","sources":["../../../src/modules/environments/environmentRemediation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,MAAM,EACN,yBAAyB,EACzB,eAAe,EACf,cAAc,EACf,MAAM,qBAAqB,CAAA;AAe5B,mGAAmG;AACnG,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,aAAa,EAAE,cAAc,CAAA;CAC9B;AAED,6FAA6F;AAC7F,MAAM,WAAW,4BAA4B;IAC3C,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,EAAE,SAAS,GAAG,SAAS,CAAA;IAC9B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,MAAM,EAAE,MAAM,CAAA;CACf;AAED;;;;GAIG;AACH,MAAM,WAAW,yBAAyB;IACxC,UAAU,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAAA;IAClF,eAAe,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,2BAA2B,CAAC,CAAA;IACpF,aAAa,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,eAAe,CAAC,CAAA;IACtE;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,4BAA4B,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACxE,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED;;;;;;;;GAQG;AACH,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,yBAAyB,UAuCnC;IACpC,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,yBAAyB,CAAA;CAClC,KAAG,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC,CAsClD"}
@@ -0,0 +1,72 @@
1
+ import { getErrorMessage, noopLogger, runBestEffort } from '@cat-factory/kernel';
2
+ /**
3
+ * Ask the provider to remediate in place.
4
+ *
5
+ * Every outcome is APPENDED to the provisioning log before it is returned. This is the one call in
6
+ * the module that MUTATES a live cluster, and a mutation with no row of its own is invisible to the
7
+ * two readers that most need it: the investigation's own next round rebuilds its timeline from that
8
+ * log, so an unlogged restart leaves the second round reasoning about an environment it believes
9
+ * nothing has touched, and the operator's provisioning drawer never shows it either.
10
+ */
11
+ export function createEnvironmentRemediator(deps) {
12
+ const log = (deps.logger ?? noopLogger).child({ scope: 'environmentRemediation' });
13
+ /** Append one remediation row; best-effort, so a log outage never costs the remediation. */
14
+ async function record(environment, providerId, action, result) {
15
+ const append = deps.recordRemediation;
16
+ if (!append)
17
+ return;
18
+ await runBestEffort(log, 'record an environment remediation', () => append({
19
+ workspaceId: environment.workspaceId,
20
+ environmentId: environment.id,
21
+ providerId,
22
+ blockId: environment.blockId ?? null,
23
+ executionId: environment.executionId ?? null,
24
+ outcome: result.outcome,
25
+ error: result.error,
26
+ detail: JSON.stringify({
27
+ action,
28
+ applied: result.applied,
29
+ ...(result.detail === undefined ? {} : { detail: result.detail }),
30
+ }),
31
+ }), { workspaceId: environment.workspaceId, environmentId: environment.id, action });
32
+ }
33
+ return async function remediate(args) {
34
+ const { workspaceId, environmentId, action } = args;
35
+ const environment = await deps.readRecord(workspaceId, environmentId);
36
+ if (!environment)
37
+ throw new Error(`Environment '${environmentId}' is no longer in the registry`);
38
+ const { manifest, provider, resolveSecret } = await deps.resolveProvider(environment);
39
+ const remediateFn = provider.diagnostics?.remediate;
40
+ if (!remediateFn) {
41
+ throw new Error(`Provider '${manifest.providerId}' offers no in-place remediation for this environment`);
42
+ }
43
+ const provisionFields = await deps.decryptFields(environment);
44
+ try {
45
+ const outcome = await remediateFn.call(provider.diagnostics, {
46
+ manifest,
47
+ externalId: environment.externalId,
48
+ provisionFields,
49
+ resolveSecret,
50
+ action,
51
+ });
52
+ // `applied: false` is a FAILURE row, not a quiet success: the requested remediation did not
53
+ // happen, and the timeline's job is to say whether anything touched this environment.
54
+ await record(environment, manifest.providerId, action, {
55
+ outcome: outcome.applied ? 'success' : 'failure',
56
+ error: outcome.applied ? null : outcome.detail,
57
+ applied: outcome.applied,
58
+ detail: outcome.detail,
59
+ });
60
+ return outcome;
61
+ }
62
+ catch (error) {
63
+ await record(environment, manifest.providerId, action, {
64
+ outcome: 'failure',
65
+ error: getErrorMessage(error),
66
+ applied: false,
67
+ });
68
+ throw error;
69
+ }
70
+ };
71
+ }
72
+ //# sourceMappingURL=environmentRemediation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environmentRemediation.js","sourceRoot":"","sources":["../../../src/modules/environments/environmentRemediation.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import type { ConnectionTestResult, EnvironmentAccessHandle, EnvironmentHandle, EnvironmentManifest, EnvironmentStatus, ProviderConfigField, TeardownConfirmation, TeardownProbe } from '@cat-factory/kernel';
2
2
  import type { EnvironmentRecord, UrlSafetyPolicy } from '@cat-factory/kernel';
3
+ import type { EnvironmentAddress, EnvironmentReachability } from '@cat-factory/contracts';
3
4
  /**
4
5
  * The agent kind that triggers deterministic provisioning, and its counterpart that triggers the
5
6
  * deterministic RECLAIM. Re-exported from `@cat-factory/contracts` rather than restated: the
@@ -175,8 +176,44 @@ export declare function mapStatus(raw: string | undefined, statusMap: {
175
176
  from: string;
176
177
  to: EnvironmentStatus;
177
178
  }[] | undefined, fallback: EnvironmentStatus): EnvironmentStatus;
179
+ /**
180
+ * Read a manifest's `addressesPath` off an arbitrary provider response.
181
+ *
182
+ * Three shapes are accepted because a self-rolled management API can reasonably return any of
183
+ * them, and refusing two would push an org into reshaping its API for us: a single address string,
184
+ * an array of strings, or an array of `{ address, label }` objects. Anything else in the array is
185
+ * SKIPPED rather than coerced, so an unexpected element cannot become the literal `[object
186
+ * Object]` in an `--add-host` argument.
187
+ *
188
+ * Nothing here validates the addresses. Which ones a bridge may name is kernel's rule
189
+ * (`isBridgeableAddress`), applied where the bridge is built, and what actually carries is the
190
+ * proof's answer; a provider stating a useless address gets a recorded failed attempt, which is
191
+ * the honest outcome.
192
+ */
193
+ export declare function extractAddresses(json: unknown, path: string | undefined): EnvironmentAddress[];
194
+ /**
195
+ * Parse the stored reachability blob, or null when there is none and when what is there does not
196
+ * validate.
197
+ *
198
+ * The ONE parse of that column, which is why it is here rather than in each facade's repository:
199
+ * two implementations of one validator is how a D1 row and a Postgres row come to disagree about
200
+ * what they hold. A blob that fails validation reads as ABSENT rather than throwing, because the
201
+ * caller is a projection every environment read goes through and a stale shape written by an older
202
+ * build must not take the whole handle down with it: an unreadable proof and no proof are the same
203
+ * fact to every reader (nothing has been shown to carry).
204
+ */
205
+ export declare function parseReachability(raw: string | null): EnvironmentReachability | null;
206
+ /** Serialize reachability for the row, or null when there is nothing worth a column. */
207
+ export declare function serializeReachability(value: EnvironmentReachability | null): string | null;
178
208
  /** Project a stored record onto the wire handle, optionally with decrypted access. */
179
209
  export declare function recordToHandle(record: EnvironmentRecord, access?: EnvironmentAccessHandle | null): EnvironmentHandle;
210
+ /**
211
+ * A provider's status note as it is stored: trimmed, blank-as-null, and bounded.
212
+ *
213
+ * A capped note SAYS it was capped rather than trailing off, so a reader never takes the prefix
214
+ * for the whole account (the same rule every other cap in the environment path follows).
215
+ */
216
+ export declare function boundStatusNote(note: string | null | undefined): string | null;
180
217
  /** Coerce an extracted expiry (epoch-ms number, numeric string, or ISO) to ms. */
181
218
  export declare function coerceExpiresAt(value: unknown): number | null;
182
219
  //# sourceMappingURL=environments.logic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"environments.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/environments/environments.logic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environments.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/environments/environments.logic.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import { connectionFailureResult, STRICT_URL_SAFETY_POLICY } from '@cat-factory/kernel';
2
+ import { environmentReachabilitySchema } from '@cat-factory/contracts';
3
+ import * as v from 'valibot';
2
4
  import { safeFetch } from '../shared/safe-fetch.js';
3
5
  import { assertSafePublicUrl, publicUrlHost } from '../shared/url-guard.js';
4
6
  // Pure helpers for the ephemeral-environment integration: SSRF validation of the
@@ -334,6 +336,74 @@ export function mapStatus(raw, statusMap, fallback) {
334
336
  }
335
337
  return fallback;
336
338
  }
339
+ /**
340
+ * Read a manifest's `addressesPath` off an arbitrary provider response.
341
+ *
342
+ * Three shapes are accepted because a self-rolled management API can reasonably return any of
343
+ * them, and refusing two would push an org into reshaping its API for us: a single address string,
344
+ * an array of strings, or an array of `{ address, label }` objects. Anything else in the array is
345
+ * SKIPPED rather than coerced, so an unexpected element cannot become the literal `[object
346
+ * Object]` in an `--add-host` argument.
347
+ *
348
+ * Nothing here validates the addresses. Which ones a bridge may name is kernel's rule
349
+ * (`isBridgeableAddress`), applied where the bridge is built, and what actually carries is the
350
+ * proof's answer; a provider stating a useless address gets a recorded failed attempt, which is
351
+ * the honest outcome.
352
+ */
353
+ export function extractAddresses(json, path) {
354
+ if (!path)
355
+ return [];
356
+ const raw = extractByPath(json, path);
357
+ if (typeof raw === 'string')
358
+ return raw.trim() ? [{ address: raw.trim() }] : [];
359
+ if (!Array.isArray(raw))
360
+ return [];
361
+ const out = [];
362
+ for (const entry of raw) {
363
+ if (typeof entry === 'string') {
364
+ if (entry.trim())
365
+ out.push({ address: entry.trim() });
366
+ continue;
367
+ }
368
+ if (!entry || typeof entry !== 'object')
369
+ continue;
370
+ const record = entry;
371
+ const address = typeof record.address === 'string' ? record.address.trim() : '';
372
+ if (!address)
373
+ continue;
374
+ const label = typeof record.label === 'string' ? record.label.trim() : '';
375
+ out.push(label ? { address, label } : { address });
376
+ }
377
+ return out;
378
+ }
379
+ /**
380
+ * Parse the stored reachability blob, or null when there is none and when what is there does not
381
+ * validate.
382
+ *
383
+ * The ONE parse of that column, which is why it is here rather than in each facade's repository:
384
+ * two implementations of one validator is how a D1 row and a Postgres row come to disagree about
385
+ * what they hold. A blob that fails validation reads as ABSENT rather than throwing, because the
386
+ * caller is a projection every environment read goes through and a stale shape written by an older
387
+ * build must not take the whole handle down with it: an unreadable proof and no proof are the same
388
+ * fact to every reader (nothing has been shown to carry).
389
+ */
390
+ export function parseReachability(raw) {
391
+ if (!raw)
392
+ return null;
393
+ try {
394
+ const parsed = v.safeParse(environmentReachabilitySchema, JSON.parse(raw));
395
+ return parsed.success ? parsed.output : null;
396
+ }
397
+ catch {
398
+ return null;
399
+ }
400
+ }
401
+ /** Serialize reachability for the row, or null when there is nothing worth a column. */
402
+ export function serializeReachability(value) {
403
+ if (!value || (value.candidates.length === 0 && !value.proof))
404
+ return null;
405
+ return JSON.stringify(value);
406
+ }
337
407
  /** Project a stored record onto the wire handle, optionally with decrypted access. */
338
408
  export function recordToHandle(record, access) {
339
409
  return {
@@ -345,15 +415,44 @@ export function recordToHandle(record, access) {
345
415
  providerId: record.providerId,
346
416
  externalId: record.externalId,
347
417
  url: record.url,
418
+ reachability: parseReachability(record.reachability),
348
419
  status: record.status,
349
420
  ...(access ? { access } : {}),
350
421
  createdAt: record.createdAt,
351
422
  expiresAt: record.expiresAt,
352
423
  lastError: record.lastError,
424
+ statusNote: record.statusNote,
353
425
  provisionType: record.provisionType,
354
426
  engine: record.engine,
355
427
  };
356
428
  }
429
+ /**
430
+ * How much of a provider's status note is persisted. The note is provider-authored prose that
431
+ * lands in three places a sentence has to stay readable in: the step's Environment panel, the
432
+ * readiness ceiling's run-failure message, and the outcome card's environment row.
433
+ *
434
+ * `lastError` is deliberately uncapped beside it, and the asymmetry is the point: a fault is
435
+ * something a person opens and scrolls (the panel gives it its own scrollable block), while the
436
+ * note is one muted line beside an environment that is doing fine. A code adapter answering with
437
+ * a controller dump or an event list would otherwise push everything under it off the surface.
438
+ */
439
+ const STATUS_NOTE_CAP = 400;
440
+ /**
441
+ * A provider's status note as it is stored: trimmed, blank-as-null, and bounded.
442
+ *
443
+ * A capped note SAYS it was capped rather than trailing off, so a reader never takes the prefix
444
+ * for the whole account (the same rule every other cap in the environment path follows).
445
+ */
446
+ export function boundStatusNote(note) {
447
+ const trimmed = note?.trim();
448
+ if (!trimmed)
449
+ return null;
450
+ if (trimmed.length <= STATUS_NOTE_CAP)
451
+ return trimmed;
452
+ const dropped = trimmed.length - STATUS_NOTE_CAP;
453
+ return (`${trimmed.slice(0, STATUS_NOTE_CAP)} ` +
454
+ `[note truncated: ${dropped} of ${trimmed.length} characters dropped]`);
455
+ }
357
456
  /** Coerce an extracted expiry (epoch-ms number, numeric string, or ISO) to ms. */
358
457
  export function coerceExpiresAt(value) {
359
458
  if (value === null || value === undefined)
@@ -1 +1 @@
1
- {"version":3,"file":"environments.logic.js","sourceRoot":"","sources":["../../../src/modules/environments/environments.logic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"environments.logic.js","sourceRoot":"","sources":["../../../src/modules/environments/environments.logic.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { AsyncProvisionCapability, ConnectionTestResult, EnvironmentConnectionTestRequest, EnvironmentManifest, EnvironmentProvider, EnvironmentStatus, EnvironmentStatusRequest, EnvironmentTeardownRequest, KubernetesConnectionConfig, KubernetesProvisionConfig, ProviderConfigField, ProvisionEnvironmentRequest, ProvisionedEnvironment, SecretResolver, TeardownProbe } from '@cat-factory/kernel';
1
+ import type { AsyncProvisionCapability, ConnectionTestResult, EnvironmentConnectionTestRequest, EnvironmentManifest, EnvironmentProvider, EnvironmentStatus, EnvironmentDiagnosis, EnvironmentRemediationOutcome, EnvironmentRemediationRequest, EnvironmentStatusRequest, EnvironmentTeardownRequest, KubernetesConnectionConfig, KubernetesProvisionConfig, ProviderConfigField, ProvisionEnvironmentRequest, ProvisionedEnvironment, SecretResolver, TeardownProbe } from '@cat-factory/kernel';
2
2
  import { KubernetesApiClient } from './KubernetesApiClient.js';
3
3
  /**
4
4
  * Field manager for the manifest applies. Exported so the registry-auth writes can be pinned as
@@ -44,6 +44,21 @@ export declare class KubernetesEnvironmentProvider implements EnvironmentProvide
44
44
  * provider builds the deploy job + maps its outcome; the engine dispatches/polls it.
45
45
  */
46
46
  readonly asyncProvision: AsyncProvisionCapability;
47
+ /**
48
+ * What the apiserver can say about a namespace that never became usable, and the one thing the
49
+ * platform can ask it to do about it.
50
+ *
51
+ * Grouped as the optional capability rather than folded into `status()`, which reduces the whole
52
+ * cluster's answer to one word because a readiness judgement needs one word. The per-pod terminal
53
+ * reasons `analyzePodStatus` extracts have always been available and have never reached a reader:
54
+ * an `ImagePullBackOff` arrives at the run as a generic timeout, and the difference between "the
55
+ * image does not exist" and "we waited twenty minutes" is the whole diagnosis.
56
+ */
57
+ readonly diagnostics: {
58
+ describe: (req: EnvironmentStatusRequest) => Promise<EnvironmentDiagnosis>;
59
+ supportedActions: readonly "restart"[];
60
+ remediate: (req: EnvironmentRemediationRequest) => Promise<EnvironmentRemediationOutcome>;
61
+ };
47
62
  provision(req: ProvisionEnvironmentRequest): Promise<ProvisionedEnvironment>;
48
63
  status(req: EnvironmentStatusRequest): Promise<ProvisionedEnvironment>;
49
64
  teardown(req: EnvironmentTeardownRequest): Promise<{
@@ -148,7 +163,15 @@ export declare class KubernetesEnvironmentProvider implements EnvironmentProvide
148
163
  * `imagePullSecrets` it does not mention straight back off again.
149
164
  */
150
165
  private applyResource;
151
- /** Aggregate the namespace's Deployments into one lifecycle verdict. */
166
+ /**
167
+ * Aggregate the namespace's Deployments into one lifecycle verdict, plus the note that says
168
+ * what a `provisioning` verdict is waiting on ({@link reduceRolloutProgress}).
169
+ *
170
+ * The note is the whole reason this returns a pair rather than a bare status: `provisioning` is
171
+ * what keeps the deployer's readiness wait alive, and it is persisted as the environment's
172
+ * `statusNote`, so the run states which workloads have not landed instead of only how long it
173
+ * has been waiting for them.
174
+ */
152
175
  private deploymentStatus;
153
176
  /**
154
177
  * Whether anything in the cluster will serve the host an `ingressTemplate` URL names: the
@@ -1 +1 @@
1
- {"version":3,"file":"KubernetesEnvironmentProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/kubernetes/KubernetesEnvironmentProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,oBAAoB,EAEpB,gCAAgC,EAChC,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAE1B,yBAAyB,EACzB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EAItB,cAAc,EACd,aAAa,EACd,MAAM,qBAAqB,CAAA;AAS5B,OAAO,EAAE,mBAAmB,EAAY,MAAM,0BAA0B,CAAA;AAwExE;;;;GAIG;AACH,eAAO,MAAM,aAAa,gBAAgB,CAAA;AAmB1C,MAAM,WAAW,oCAAoC;IACnD,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,qBAAa,6BAA8B,YAAW,mBAAmB;IAE3D,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,GAAE,oCAAyC,EAAI;IAEnF;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,mBAAmB,GAAG,yBAAyB,CAE9E;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,mBAAmB,GAAG,0BAA0B,CAEnF;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,UAAU,CAClB,MAAM,EAAE,0BAA0B,EAClC,aAAa,EAAE,cAAc,GAC5B,mBAAmB,CAErB;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAGhD;IAEK,SAAS,CAAC,GAAG,EAAE,2BAA2B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAmDjF;IAEK,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAkE3E;IAEK,QAAQ,CAAC,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAoBtF;IAED;;;;;;;;;OASG;IACG,eAAe,CAAC,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC,aAAa,CAAC,CAyD7E;IAEK,cAAc,CAAC,GAAG,EAAE,gCAAgC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAgCzF;IAED,cAAc,IAAI,mBAAmB,EAAE,CAKtC;IAID;;;;OAIG;YACW,iBAAiB;IAwC/B,uEAAuE;IACvE,OAAO,CAAC,iBAAiB;IAQzB;;;;OAIG;IACH;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,gBAAgB;YASV,eAAe;IAqB7B;;;;;;;;;;;;;;;OAeG;YACW,mBAAmB;IAmBjC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;YACW,kBAAkB;IAgFhC,sFAAsF;YACxE,kBAAkB;YAclB,KAAK;IASnB;;;;;OAKG;YACW,aAAa;IAmC3B,wEAAwE;YAC1D,gBAAgB;IAoC9B;;;;;;;;;OASG;YACW,gBAAgB;IAoB9B,uFAAuF;YACzE,cAAc;IAa5B;;;;;;;OAOG;YACW,cAAc;IAiC5B;;;OAGG;YACW,eAAe;IAmB7B;;;;OAIG;YACW,iBAAiB;IA+B/B,iFAAiF;YACnE,OAAO;IAKrB;;;OAGG;YACW,gBAAgB;IAa9B,0FAA0F;YAC5E,aAAa;IAwB3B,0EAA0E;YAC5D,QAAQ;CAevB"}
1
+ {"version":3,"file":"KubernetesEnvironmentProvider.d.ts","sourceRoot":"","sources":["../../../src/modules/kubernetes/KubernetesEnvironmentProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,wBAAwB,EACxB,oBAAoB,EAEpB,gCAAgC,EAChC,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EAEpB,6BAA6B,EAC7B,6BAA6B,EAC7B,wBAAwB,EACxB,0BAA0B,EAC1B,0BAA0B,EAE1B,yBAAyB,EACzB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EAItB,cAAc,EACd,aAAa,EACd,MAAM,qBAAqB,CAAA;AAS5B,OAAO,EAAE,mBAAmB,EAAY,MAAM,0BAA0B,CAAA;AA6ExE;;;;GAIG;AACH,eAAO,MAAM,aAAa,gBAAgB,CAAA;AAmB1C,MAAM,WAAW,oCAAoC;IACnD,oEAAoE;IACpE,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB;AAED,qBAAa,6BAA8B,YAAW,mBAAmB;IAE3D,OAAO,CAAC,QAAQ,CAAC,OAAO;IAApC,YAA6B,OAAO,GAAE,oCAAyC,EAAI;IAEnF;;;;OAIG;IACH,SAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,mBAAmB,GAAG,yBAAyB,CAE9E;IAED;;;;;;;;OAQG;IACH,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,mBAAmB,GAAG,0BAA0B,CAEnF;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,UAAU,CAClB,MAAM,EAAE,0BAA0B,EAClC,aAAa,EAAE,cAAc,GAC5B,mBAAmB,CAErB;IAED;;;;OAIG;IACH,QAAQ,CAAC,cAAc,EAAE,wBAAwB,CAGhD;IAED;;;;;;;;;OASG;IACH,QAAQ,CAAC,WAAW;wBACI,wBAAwB,KAAG,OAAO,CAAC,oBAAoB,CAAC;;yBA8BvE,6BAA6B,KACjC,OAAO,CAAC,6BAA6B,CAAC;MAcC;IAEtC,SAAS,CAAC,GAAG,EAAE,2BAA2B,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAmDjF;IAEK,MAAM,CAAC,GAAG,EAAE,wBAAwB,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAmF3E;IAEK,QAAQ,CAAC,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAoBtF;IAED;;;;;;;;;OASG;IACG,eAAe,CAAC,GAAG,EAAE,0BAA0B,GAAG,OAAO,CAAC,aAAa,CAAC,CAyD7E;IAEK,cAAc,CAAC,GAAG,EAAE,gCAAgC,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAgCzF;IAED,cAAc,IAAI,mBAAmB,EAAE,CAKtC;IAID;;;;OAIG;YACW,iBAAiB;IAwC/B,uEAAuE;IACvE,OAAO,CAAC,iBAAiB;IAQzB;;;;OAIG;IACH;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,kBAAkB;IAQ1B,OAAO,CAAC,gBAAgB;YASV,eAAe;IAqB7B;;;;;;;;;;;;;;;OAeG;YACW,mBAAmB;IAmBjC;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;YACW,kBAAkB;IAgFhC,sFAAsF;YACxE,kBAAkB;YAclB,KAAK;IASnB;;;;;OAKG;YACW,aAAa;IAmC3B;;;;;;;;OAQG;YACW,gBAAgB;IAgD9B;;;;;;;;;OASG;YACW,gBAAgB;IAoB9B,uFAAuF;YACzE,cAAc;IAa5B;;;;;;;OAOG;YACW,cAAc;IAiC5B;;;OAGG;YACW,eAAe;IAmB7B;;;;OAIG;YACW,iBAAiB;IA+B/B,iFAAiF;YACnE,OAAO;IAKrB;;;OAGG;YACW,gBAAgB;IAa9B,0FAA0F;YAC5E,aAAa;IAwB3B,0EAA0E;YAC5D,QAAQ;CAevB"}