@cat-factory/integrations 0.168.0 → 0.169.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) 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 +29 -2
  6. package/dist/modules/environments/EnvironmentProvisioningService.d.ts.map +1 -1
  7. package/dist/modules/environments/EnvironmentProvisioningService.js +44 -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/environmentReachability.d.ts +44 -0
  13. package/dist/modules/environments/environmentReachability.d.ts.map +1 -0
  14. package/dist/modules/environments/environmentReachability.js +86 -0
  15. package/dist/modules/environments/environmentReachability.js.map +1 -0
  16. package/dist/modules/environments/environments.logic.d.ts +30 -0
  17. package/dist/modules/environments/environments.logic.d.ts.map +1 -1
  18. package/dist/modules/environments/environments.logic.js +71 -0
  19. package/dist/modules/environments/environments.logic.js.map +1 -1
  20. package/dist/modules/kubernetes/KubernetesRunnerTransport.d.ts +43 -0
  21. package/dist/modules/kubernetes/KubernetesRunnerTransport.d.ts.map +1 -1
  22. package/dist/modules/kubernetes/KubernetesRunnerTransport.js +92 -3
  23. package/dist/modules/kubernetes/KubernetesRunnerTransport.js.map +1 -1
  24. package/dist/modules/kubernetes/kubernetes.logic.d.ts +18 -0
  25. package/dist/modules/kubernetes/kubernetes.logic.d.ts.map +1 -1
  26. package/dist/modules/kubernetes/kubernetes.logic.js +29 -0
  27. package/dist/modules/kubernetes/kubernetes.logic.js.map +1 -1
  28. package/dist/modules/shared/environmentBridge.d.ts +66 -0
  29. package/dist/modules/shared/environmentBridge.d.ts.map +1 -0
  30. package/dist/modules/shared/environmentBridge.js +78 -0
  31. package/dist/modules/shared/environmentBridge.js.map +1 -0
  32. package/package.json +4 -4
@@ -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"}
@@ -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,6 +176,35 @@ 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;
180
210
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"environments.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/environments/environments.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,uBAAuB,EACvB,iBAAiB,EACjB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,aAAa,EACd,MAAM,qBAAqB,CAAA;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAW7E;;;;;GAKG;AACH,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAA;AAQjF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,uFAAuF;AACvF,eAAO,MAAM,sBAAsB,gBAAgB,CAAA;AAEnD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG;IAC3D,YAAY,EAAE,oBAAoB,CAAA;IAClC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACtB,CA4BA;AAwBD,mGAAmG;AACnG,MAAM,WAAW,mBAAmB;IAClC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,qGAAqG;IACrG,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;CAC1B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,wBAAwB,CACtC,KAAK,EAAE,mBAAmB,EAC1B,IAAI,EAAE,mBAAmB,GAAG,IAAI,GAC/B,OAAO,CAOT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,EACX,KAAK,SAAQ,EACb,MAAM,GAAE,eAA0C,GACjD,IAAI,CAEN;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,kCAAkC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAO7E;AAED;;;;;;;GAOG;AACH,wBAAgB,+BAA+B,CAAC,KAAK,EAAE,gBAAgB,GAAG,MAAM,CAQ/E;AAED,uEAAuE;AACvE,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,mBAAmB,EAC7B,MAAM,EAAE,eAAe,GACtB,IAAI,CAKN;AAED,oEAAoE;AACpE,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,mBAAmB,GAAG,MAAM,EAAE,CAe5E;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAC1C,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAQpC;AAED;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,mBAAmB,EAAE,CAEhF;AAED;;;;;;;;GAQG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,EAAE,EAC7B,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,GAC3B,MAAM,EAAE,CAKV;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC/B,MAAM,GAAE,eAA0C,EAClD,OAAO,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAO,GACrD,OAAO,CAAC,oBAAoB,CAAC,CAyB/B;AAED,yEAAyE;AACzE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAClC;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,MAAM,CAWvF;AAED,mFAAmF;AACnF,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CASlE;AAED,uEAAuE;AACvE,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAOzF;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CACvB,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,SAAS,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,iBAAiB,CAAA;CAAE,EAAE,GAAG,SAAS,EAChE,QAAQ,EAAE,iBAAiB,GAC1B,iBAAiB,CAMnB;AAED,sFAAsF;AACtF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,iBAAiB,EACzB,MAAM,CAAC,EAAE,uBAAuB,GAAG,IAAI,GACtC,iBAAiB,CAmBnB;AAcD;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAS9E;AAED,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAU7D"}
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,6 +415,7 @@ 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,
@@ -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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"}
@@ -48,6 +48,49 @@ export declare class KubernetesRunnerTransport implements RunnerTransport {
48
48
  */
49
49
  private podDeathReport;
50
50
  private ensurePod;
51
+ /**
52
+ * Delete the pod standing in the way of a replacement, and FAIL on a refusal rather than
53
+ * proceeding to the recreate.
54
+ *
55
+ * The result has to be read. A delete the apiserver refuses (a ServiceAccount with `create` but
56
+ * not `delete`, an admission webhook, a 500) leaves the pod running, and {@link recreatePod}
57
+ * then spends the whole 90-second replacement window collecting 409s before throwing an error
58
+ * that names the CREATE: a step burning a minute and a half of the driver's budget, and an
59
+ * operator sent to the wrong permission. A deployment missing `pods/delete` hits this on every
60
+ * environment-bearing step, so it is a standing misconfiguration rather than a transient.
61
+ *
62
+ * 404 is success: something already removed the pod, which is exactly the state the delete was
63
+ * asking for.
64
+ */
65
+ private deletePodForReplacement;
66
+ /**
67
+ * Whether the pod already serving this run was created without a host alias the job now needs.
68
+ *
69
+ * `hostAliases` is fixed at pod creation, and a run's pod is created by its FIRST step while the
70
+ * environment it must reach does not exist until the `deployer` several steps later, so the
71
+ * ordinary case for a name-to-address bridge is a pod that predates it. Left unchecked, the
72
+ * re-attach is silent and the tester spends its whole step on connection failures, which is the
73
+ * misreading the bridge exists to stop.
74
+ *
75
+ * Read back off the LIVE pod rather than remembered in this process, which is the one thing this
76
+ * transport can do that the Docker one cannot (`--add-host` is not readable off a container).
77
+ * That also makes the check survive a restart with no cache to lose.
78
+ *
79
+ * A read that FAILS answers false. The alternative is worse in the direction that matters: a
80
+ * transient apiserver blip would delete a healthy pod mid-run, where answering false costs at
81
+ * most the diagnostic the tester was going to produce anyway.
82
+ */
83
+ private podMissingHostAliases;
84
+ /**
85
+ * Re-create a pod just deleted for a stale host-alias set, tolerating the window in which the
86
+ * apiserver still holds the terminating one.
87
+ *
88
+ * A bare Pod deletes gracefully, so the name stays taken for its termination period and an
89
+ * immediate POST 409s again. Retried rather than failed because the alternative leaves the run
90
+ * attached to the very pod that cannot reach its environment; giving up after the window is an
91
+ * ordinary dispatch failure the engine already recovers by re-driving the step.
92
+ */
93
+ private recreatePod;
51
94
  private waitForPodReady;
52
95
  private proxyFetch;
53
96
  private apiFetch;
@@ -1 +1 @@
1
- {"version":3,"file":"KubernetesRunnerTransport.d.ts","sourceRoot":"","sources":["../../../src/modules/kubernetes/KubernetesRunnerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EAMzB,KAAK,sBAAsB,EAE3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,0BAA0B,CAAA;AA0DjC,qBAAa,yBAA0B,YAAW,eAAe;IAM7D,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,sFAAsF;IACtF,QAAQ,CAAC,OAAO,iBAAgB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C,YACmB,MAAM,EAAE,sBAAsB,EAC/C,aAAa,EAAE,cAAc;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,uBAAuB,EAQxC;IAEK,QAAQ,CACZ,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,GAAE,kBAA4B,EAClC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAoBxC;IAEK,IAAI,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAqCpD;IAED,qEAAqE;IAC/D,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB9C;IAED;;;;;;;;OAQG;IACG,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAe9D;IAED,mFAAmF;IAC7E,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC,CA6BpD;IAID;;;;;;;;;;;;;;;;;OAiBG;YACW,cAAc;YAwCd,SAAS;YAaT,eAAe;IA+C7B,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,QAAQ;CAQjB"}
1
+ {"version":3,"file":"KubernetesRunnerTransport.d.ts","sourceRoot":"","sources":["../../../src/modules/kubernetes/KubernetesRunnerTransport.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,oBAAoB,EAMzB,KAAK,sBAAsB,EAE3B,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,EAC1B,KAAK,YAAY,EACjB,KAAK,oBAAoB,EACzB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAA;AAC5B,OAAO,EAEL,KAAK,uBAAuB,EAE7B,MAAM,0BAA0B,CAAA;AAgEjC,qBAAa,yBAA0B,YAAW,eAAe;IAM7D,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,sFAAsF;IACtF,QAAQ,CAAC,OAAO,iBAAgB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAE5C,YACmB,MAAM,EAAE,sBAAsB,EAC/C,aAAa,EAAE,cAAc;IAC7B;;;;OAIG;IACH,aAAa,CAAC,EAAE,uBAAuB,EAQxC;IAEK,QAAQ,CACZ,GAAG,EAAE,YAAY,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,IAAI,GAAE,kBAA4B,EAClC,OAAO,CAAC,EAAE,qBAAqB,GAC9B,OAAO,CAAC,iBAAiB,GAAG,SAAS,CAAC,CAoBxC;IAEK,IAAI,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAqCpD;IAED,qEAAqE;IAC/D,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAmB9C;IAED;;;;;;;;OAQG;IACG,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAe9D;IAED,mFAAmF;IAC7E,cAAc,IAAI,OAAO,CAAC,oBAAoB,CAAC,CA6BpD;IAID;;;;;;;;;;;;;;;;;OAiBG;YACW,cAAc;YAwCd,SAAS;IAmBvB;;;;;;;;;;;;;OAaG;YACW,uBAAuB;IAerC;;;;;;;;;;;;;;;;OAgBG;YACW,qBAAqB;IAoBnC;;;;;;;;OAQG;YACW,WAAW;YAcX,eAAe;IA+C7B,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,QAAQ;CAQjB"}
@@ -1,6 +1,6 @@
1
1
  import { composePostMortem, connectionFailureResult, CONTAINER_EVICTION_ERROR, containerKeyForRef, getErrorMessage, HARNESS_SHUTDOWN_ERROR, harnessDispatchError, readRunnerDispatchAck, } from '@cat-factory/kernel';
2
2
  import { KubernetesApiClient, safeText, } from './KubernetesApiClient.js';
3
- import { analyzePodStatus, apiBase, apiServerConnectionFailureMessage, buildPodManifest, classifyPodReadiness, describePodTermination, KUBERNETES_TOKEN_KEY, podExitedCleanly, podName, podUrl, podsUrl, proxyUrl, } from './kubernetes.logic.js';
3
+ import { analyzePodStatus, apiBase, apiServerConnectionFailureMessage, buildPodManifest, classifyPodReadiness, podHostAliases, describePodTermination, KUBERNETES_TOKEN_KEY, podExitedCleanly, podName, podUrl, podsUrl, proxyUrl, } from './kubernetes.logic.js';
4
4
  // Native Kubernetes runner transport (target k8s 1.35+). One bare Pod per run and IMAGE
5
5
  // VARIANT, named deterministically from kernel's `containerKeyForRef`; every step of the run
6
6
  // that wants the same image re-attaches to that pod by `ref.jobId`, and a step declaring a
@@ -40,6 +40,11 @@ const STOP_TIMEOUT_MS = 30_000;
40
40
  // created (ensurePod 409s) and its image is cached, so the re-drive proceeds.
41
41
  const READY_WAIT_MS = 120_000;
42
42
  const READY_POLL_INTERVAL_MS = 1_500;
43
+ // How long a replacement pod waits out the terminating one holding its name. A bare Pod deletes
44
+ // gracefully, so the name stays taken for the grace period (30s by default) plus the kubelet's
45
+ // own settle; the window covers a doubled default rather than an arbitrary round number.
46
+ const POD_REPLACE_WAIT_MS = 90_000;
47
+ const POD_REPLACE_POLL_MS = 1_500;
43
48
  export class KubernetesRunnerTransport {
44
49
  config;
45
50
  /** Backend id recorded in run diagnostics (self-hosted runner pool on Kubernetes). */
@@ -231,11 +236,95 @@ export class KubernetesRunnerTransport {
231
236
  async ensurePod(name, runId, options) {
232
237
  const manifest = buildPodManifest(this.config, runId, name, options);
233
238
  const res = await this.apiFetch('POST', podsUrl(this.config), manifest, DISPATCH_TIMEOUT_MS);
239
+ if (res.ok)
240
+ return;
234
241
  // 409 AlreadyExists ⇒ the run's pod is already up (a later step or a replay):
235
242
  // idempotent re-attach, exactly like CloudflareContainerTransport.
236
- if (res.ok || res.status === 409)
243
+ if (res.status !== 409) {
244
+ throw new Error(`Failed to create runner pod (HTTP ${res.status}): ${await safeText(res)}`);
245
+ }
246
+ if (await this.podMissingHostAliases(name, options)) {
247
+ await this.deletePodForReplacement(name);
248
+ await this.recreatePod(name, manifest);
249
+ }
250
+ }
251
+ /**
252
+ * Delete the pod standing in the way of a replacement, and FAIL on a refusal rather than
253
+ * proceeding to the recreate.
254
+ *
255
+ * The result has to be read. A delete the apiserver refuses (a ServiceAccount with `create` but
256
+ * not `delete`, an admission webhook, a 500) leaves the pod running, and {@link recreatePod}
257
+ * then spends the whole 90-second replacement window collecting 409s before throwing an error
258
+ * that names the CREATE: a step burning a minute and a half of the driver's budget, and an
259
+ * operator sent to the wrong permission. A deployment missing `pods/delete` hits this on every
260
+ * environment-bearing step, so it is a standing misconfiguration rather than a transient.
261
+ *
262
+ * 404 is success: something already removed the pod, which is exactly the state the delete was
263
+ * asking for.
264
+ */
265
+ async deletePodForReplacement(name) {
266
+ const res = await this.apiFetch('DELETE', podUrl(this.config, name), undefined, DISPATCH_TIMEOUT_MS);
267
+ if (res.ok || res.status === 404)
237
268
  return;
238
- throw new Error(`Failed to create runner pod (HTTP ${res.status}): ${await safeText(res)}`);
269
+ throw new Error(`Could not delete runner pod '${name}' to give it a host alias it needs (HTTP ` +
270
+ `${res.status}): ${await safeText(res)}. The pod is still running without the alias, so ` +
271
+ `the job would not reach its environment.`);
272
+ }
273
+ /**
274
+ * Whether the pod already serving this run was created without a host alias the job now needs.
275
+ *
276
+ * `hostAliases` is fixed at pod creation, and a run's pod is created by its FIRST step while the
277
+ * environment it must reach does not exist until the `deployer` several steps later, so the
278
+ * ordinary case for a name-to-address bridge is a pod that predates it. Left unchecked, the
279
+ * re-attach is silent and the tester spends its whole step on connection failures, which is the
280
+ * misreading the bridge exists to stop.
281
+ *
282
+ * Read back off the LIVE pod rather than remembered in this process, which is the one thing this
283
+ * transport can do that the Docker one cannot (`--add-host` is not readable off a container).
284
+ * That also makes the check survive a restart with no cache to lose.
285
+ *
286
+ * A read that FAILS answers false. The alternative is worse in the direction that matters: a
287
+ * transient apiserver blip would delete a healthy pod mid-run, where answering false costs at
288
+ * most the diagnostic the tester was going to produce anyway.
289
+ */
290
+ async podMissingHostAliases(name, options) {
291
+ const needed = podHostAliases(options);
292
+ if (needed.length === 0)
293
+ return false;
294
+ const res = await this.apiFetch('GET', podUrl(this.config, name), undefined, POLL_TIMEOUT_MS);
295
+ if (!res.ok)
296
+ return false;
297
+ const pod = (await res.json());
298
+ const present = new Set();
299
+ for (const alias of Array.isArray(pod?.spec?.hostAliases) ? pod.spec.hostAliases : []) {
300
+ const entry = alias;
301
+ if (typeof entry.ip !== 'string' || !Array.isArray(entry.hostnames))
302
+ continue;
303
+ for (const host of entry.hostnames)
304
+ present.add(`${String(host)}=${entry.ip}`);
305
+ }
306
+ return needed.some((alias) => alias.hostnames.some((host) => !present.has(`${host}=${alias.ip}`)));
307
+ }
308
+ /**
309
+ * Re-create a pod just deleted for a stale host-alias set, tolerating the window in which the
310
+ * apiserver still holds the terminating one.
311
+ *
312
+ * A bare Pod deletes gracefully, so the name stays taken for its termination period and an
313
+ * immediate POST 409s again. Retried rather than failed because the alternative leaves the run
314
+ * attached to the very pod that cannot reach its environment; giving up after the window is an
315
+ * ordinary dispatch failure the engine already recovers by re-driving the step.
316
+ */
317
+ async recreatePod(name, manifest) {
318
+ const deadline = Date.now() + POD_REPLACE_WAIT_MS;
319
+ for (;;) {
320
+ const res = await this.apiFetch('POST', podsUrl(this.config), manifest, DISPATCH_TIMEOUT_MS);
321
+ if (res.ok)
322
+ return;
323
+ if (res.status !== 409 || Date.now() >= deadline) {
324
+ throw new Error(`Failed to replace runner pod '${name}' (HTTP ${res.status}): ${await safeText(res)}`);
325
+ }
326
+ await new Promise((resolve) => setTimeout(resolve, POD_REPLACE_POLL_MS));
327
+ }
239
328
  }
240
329
  async waitForPodReady(name) {
241
330
  const deadline = Date.now() + READY_WAIT_MS;
@@ -1 +1 @@
1
- {"version":3,"file":"KubernetesRunnerTransport.js","sourceRoot":"","sources":["../../../src/modules/kubernetes/KubernetesRunnerTransport.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"KubernetesRunnerTransport.js","sourceRoot":"","sources":["../../../src/modules/kubernetes/KubernetesRunnerTransport.ts"],"names":[],"mappings":"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"}
@@ -114,6 +114,24 @@ export declare function resolveResources(config: KubernetesRunnerConfig, options
114
114
  * no inbound shared secret here: access is gated by the SA's `pods/proxy` RBAC.
115
115
  */
116
116
  export declare function buildPodManifest(config: KubernetesRunnerConfig, runId: string, name: string, options?: RunnerDispatchOptions): Record<string, unknown>;
117
+ /**
118
+ * The pod's `hostAliases`: the name-to-address mappings a job needs to reach the environments it
119
+ * was handed, grouped by address the way the API shape wants them.
120
+ *
121
+ * The Kubernetes half of the host bridge, and the reason the bridge target is a discriminated
122
+ * value rather than a Docker-only literal. `host-gateway` is a Docker-family token with no
123
+ * Kubernetes equivalent and is dropped here; a name-to-ADDRESS mapping is native
124
+ * (`{ ip, hostnames[] }`) and is exactly what a remote environment whose per-environment DNS
125
+ * record lives in a view this cluster cannot see needs. `addressBridges` owns that split so this
126
+ * transport and the local one cannot disagree about what they dropped.
127
+ *
128
+ * Grouped rather than one entry per host because the API takes a list of addresses each carrying
129
+ * its hostnames, and two names behind one balancer are the ordinary case.
130
+ */
131
+ export declare function podHostAliases(options?: RunnerDispatchOptions): {
132
+ ip: string;
133
+ hostnames: string[];
134
+ }[];
117
135
  /** Coerce an arbitrary id into a valid label value (<=63 chars, alnum/._-). */
118
136
  export declare function labelValue(value: string): string;
119
137
  /** The readiness verdict from a pod's `status`. */
@@ -1 +1 @@
1
- {"version":3,"file":"kubernetes.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/kubernetes/kubernetes.logic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kubernetes.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/kubernetes/kubernetes.logic.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { deploymentImageVariantMessage, isCloudMetadataHost, isPlatformImageVariant, RUNNER_IMAGE_UNWIRED_REASON, UnavailableError, unservablePlatformImageVariant, ValidationError, } from '@cat-factory/kernel';
2
2
  import { HARNESS_JOB_PORT, KUBERNETES_RUNNER_TOKEN_SECRET_KEY } from '@cat-factory/contracts';
3
+ import { addressBridges, planEnvironmentBridges } from '../shared/environmentBridge.js';
3
4
  // Pure helpers for the native Kubernetes runner backend. No I/O here — URL
4
5
  // building, the per-run pod-name derivation, the pod manifest, and the readiness
5
6
  // classification are all pure so they unit-test in isolation. The transport
@@ -283,9 +284,11 @@ export function buildPodManifest(config, runId, name, options) {
283
284
  },
284
285
  ...(resources ? { resources } : {}),
285
286
  };
287
+ const hostAliases = podHostAliases(options);
286
288
  const spec = {
287
289
  restartPolicy: 'Never',
288
290
  containers: [container],
291
+ ...(hostAliases.length ? { hostAliases } : {}),
289
292
  ...(config.serviceAccountName ? { serviceAccountName: config.serviceAccountName } : {}),
290
293
  ...(config.imagePullSecretName
291
294
  ? { imagePullSecrets: [{ name: config.imagePullSecretName }] }
@@ -305,6 +308,32 @@ export function buildPodManifest(config, runId, name, options) {
305
308
  spec,
306
309
  };
307
310
  }
311
+ /**
312
+ * The pod's `hostAliases`: the name-to-address mappings a job needs to reach the environments it
313
+ * was handed, grouped by address the way the API shape wants them.
314
+ *
315
+ * The Kubernetes half of the host bridge, and the reason the bridge target is a discriminated
316
+ * value rather than a Docker-only literal. `host-gateway` is a Docker-family token with no
317
+ * Kubernetes equivalent and is dropped here; a name-to-ADDRESS mapping is native
318
+ * (`{ ip, hostnames[] }`) and is exactly what a remote environment whose per-environment DNS
319
+ * record lives in a view this cluster cannot see needs. `addressBridges` owns that split so this
320
+ * transport and the local one cannot disagree about what they dropped.
321
+ *
322
+ * Grouped rather than one entry per host because the API takes a list of addresses each carrying
323
+ * its hostnames, and two names behind one balancer are the ordinary case.
324
+ */
325
+ export function podHostAliases(options) {
326
+ const plan = planEnvironmentBridges(options?.environments ?? []);
327
+ const byIp = new Map();
328
+ for (const bridge of addressBridges(plan.bridges)) {
329
+ const hostnames = byIp.get(bridge.ip);
330
+ if (hostnames)
331
+ hostnames.push(bridge.host);
332
+ else
333
+ byIp.set(bridge.ip, [bridge.host]);
334
+ }
335
+ return [...byIp.entries()].map(([ip, hostnames]) => ({ ip, hostnames }));
336
+ }
308
337
  /** Coerce an arbitrary id into a valid label value (<=63 chars, alnum/._-). */
309
338
  export function labelValue(value) {
310
339
  return value