@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,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
@@ -326,8 +355,14 @@ export function classifyPodReadiness(pod) {
326
355
  const ready = conditions.find((c) => c.type === 'Ready');
327
356
  return ready?.status === 'True' ? 'ready' : 'pending';
328
357
  }
329
- /** Classify a Deployment's status JSON: rolled out, still progressing, or failed. */
330
- export function classifyDeploymentReadiness(deployment) {
358
+ /**
359
+ * Classify a Deployment's status JSON: rolled out, still progressing, or failed.
360
+ *
361
+ * Module-private on purpose: {@link reduceRolloutProgress} owns the aggregation AND the prose a
362
+ * caller needs, and a caller reaching for the raw per-Deployment verdict is how a note-less
363
+ * `provisioning` answer got re-derived beside it.
364
+ */
365
+ function classifyDeploymentReadiness(deployment) {
331
366
  const obj = deployment;
332
367
  const status = obj?.status;
333
368
  if (!status)
@@ -349,6 +384,104 @@ export function classifyDeploymentReadiness(deployment) {
349
384
  }
350
385
  return 'pending';
351
386
  }
387
+ /**
388
+ * One Deployment's rollout state as a DIAGNOSTIC row: the per-object verdict plus the two replica
389
+ * counts behind it.
390
+ *
391
+ * The one sanctioned reader of the private classifier above, and it is not the lifecycle path:
392
+ * a diagnosis is a table of per-object facts an investigator reconciles, which is exactly what
393
+ * {@link reduceRolloutProgress} reduces away on purpose. Never use this to answer "is the
394
+ * environment ready" (that is `reduceRolloutProgress`, note and all).
395
+ *
396
+ * `desired` comes off `spec`, which is why the counts ride along rather than being re-read at the
397
+ * call site: a Deployment whose ReplicaSet never created a pod (a quota or an admission webhook
398
+ * refusing it) carries no `status.replicas` at all, and a `0/0 ready` row reads byte-for-byte like
399
+ * one deliberately scaled to zero.
400
+ */
401
+ export function describeDeploymentRollout(deployment) {
402
+ const obj = deployment;
403
+ return {
404
+ readiness: classifyDeploymentReadiness(deployment),
405
+ desired: typeof obj?.spec?.replicas === 'number' ? obj.spec.replicas : 1,
406
+ ready: typeof obj?.status?.readyReplicas === 'number' ? obj.status.readyReplicas : 0,
407
+ };
408
+ }
409
+ /**
410
+ * How many workload names a rollout note lists before it stops naming them. A note is read in a
411
+ * step panel and a run-failure message, so an unbounded list of a large namespace's Deployments
412
+ * would push the sentence that matters off the surface.
413
+ */
414
+ const ROLLOUT_NOTE_NAME_CAP = 5;
415
+ /**
416
+ * One namespace's Deployments reduced to a lifecycle verdict, plus (while it is still coming up)
417
+ * WHICH workloads have not landed.
418
+ *
419
+ * The note exists because `provisioning` is the answer that keeps a readiness wait alive, and
420
+ * before it the wait could only report its own duration: the deployer's 20-minute ceiling said
421
+ * that it had waited 20 minutes and nothing about what it had waited on. Naming the workloads
422
+ * separates the two cases an operator acts on differently: one Deployment of five stuck (look at
423
+ * that workload) versus all five (look at the namespace, the quota, the node).
424
+ *
425
+ * The verdict itself is unchanged from the reduction this replaces: no Deployment is `ready`
426
+ * (nothing to roll out), one terminally-failed rollout is `failed`, anything else outstanding is
427
+ * `provisioning`. Both non-`ready` answers carry prose, on the same argument and through the two
428
+ * channels their caller has: a `provisioning` verdict says what it is WAITING ON (`note`), and a
429
+ * `failed` one says WHICH workload gave up (`error`). The failed half had the workload's identity
430
+ * in hand and dropped it, so the environment recorded the literal 'Provisioning failed' for a
431
+ * failure whose exact name was computed here.
432
+ */
433
+ export function reduceRolloutProgress(items) {
434
+ if (items.length === 0)
435
+ return { status: 'ready' }; // nothing to roll out (e.g. a static Service)
436
+ const pending = [];
437
+ for (const item of items) {
438
+ const readiness = classifyDeploymentReadiness(item);
439
+ if (readiness === 'gone') {
440
+ return { status: 'failed', error: describeFailedRollout(deploymentName(item)) };
441
+ }
442
+ if (readiness !== 'ready')
443
+ pending.push(deploymentName(item));
444
+ }
445
+ if (pending.length === 0)
446
+ return { status: 'ready' };
447
+ return { status: 'provisioning', note: describeRolloutNote(pending, items.length) };
448
+ }
449
+ /**
450
+ * The account of a rollout that gave up: WHICH workload, and where its cause is readable.
451
+ *
452
+ * A terminal rollout is the one verdict here whose caller records a `lastError`, and that column
453
+ * falls back to the literal 'Provisioning failed' when a provider hands it nothing. Naming the
454
+ * Deployment is what turns the run's failure card, the Environment panel and the outcome row from
455
+ * "something did not happen" into one workload an operator can open.
456
+ */
457
+ function describeFailedRollout(name) {
458
+ return (`the Deployment '${name}' exceeded its rollout progress deadline: its pods never became ` +
459
+ 'available, so the cluster stopped waiting for them. That workload is where the cause is (an ' +
460
+ 'image that cannot be pulled, a container crash-looping, a pod nothing can schedule), not the ' +
461
+ 'namespace as a whole.');
462
+ }
463
+ /** A Deployment's own name, or a stand-in saying the payload carried none. */
464
+ function deploymentName(item) {
465
+ const name = item?.metadata?.name;
466
+ return typeof name === 'string' && name.trim() ? name.trim() : '(unnamed)';
467
+ }
468
+ /**
469
+ * The rollout note: how much of the namespace is outstanding, and which parts of it.
470
+ *
471
+ * A capped list SAYS it is capped rather than trailing off, so a reader never takes the names as
472
+ * the whole set (the same rule every other cap here follows).
473
+ */
474
+ function describeRolloutNote(pending, total) {
475
+ const listed = pending.slice(0, ROLLOUT_NOTE_NAME_CAP);
476
+ const dropped = pending.length - listed.length;
477
+ const names = listed.map((name) => `'${name}'`).join(', ') + (dropped > 0 ? `, and ${dropped} more` : '');
478
+ const scope = pending.length < total
479
+ ? `${pending.length} of ${total} Deployments`
480
+ : total === 1
481
+ ? "the namespace's only Deployment"
482
+ : `all ${total} Deployments`;
483
+ return `${scope} ${pending.length === 1 ? 'is' : 'are'} still rolling out: ${names}`;
484
+ }
352
485
  /**
353
486
  * Container `state.waiting.reason`s that will NOT self-heal within the readiness window:
354
487
  * a bad/unpullable image, a malformed container config, a failed lifecycle hook, or a
@@ -1 +1 @@
1
- {"version":3,"file":"kubernetes.logic.js","sourceRoot":"","sources":["../../../src/modules/kubernetes/kubernetes.logic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kubernetes.logic.js","sourceRoot":"","sources":["../../../src/modules/kubernetes/kubernetes.logic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ import type { DispatchEnvironment, HostBridgeTarget, UnbridgeableCause } from '@cat-factory/kernel';
2
+ /** One name a container must have re-pointed, and what to re-point it at. */
3
+ export interface HostBridge {
4
+ host: string;
5
+ target: HostBridgeTarget;
6
+ }
7
+ /** One environment no bridge this transport can install will make reachable, and why. */
8
+ export interface UnbridgeableEnvironment {
9
+ url: string;
10
+ cause: UnbridgeableCause;
11
+ }
12
+ /** What a job's environments mean for the container the transport is about to start. */
13
+ export interface EnvironmentBridgePlan {
14
+ /**
15
+ * The bridges to install, deduplicated and sorted by {@link hostBridgeKey}.
16
+ *
17
+ * Sorted because this list is compared against what a running container was CREATED with, and
18
+ * recorded on its handle; an order that varied with the order the engine happened to list a
19
+ * run's peers would make two identical bridge sets look different and replace a container for
20
+ * nothing.
21
+ */
22
+ bridges: readonly HostBridge[];
23
+ /**
24
+ * The environments no bridge reaches, each with the CAUSE that decides the remedy: one naming
25
+ * this machine by a spelling nothing looks up (a compose stack on `http://localhost:<port>`, a
26
+ * bare loopback address), or one the platform proved is reachable ONLY at an address this
27
+ * transport cannot install.
28
+ *
29
+ * Carried rather than dropped because "nothing to bridge" and "unreachable and unfixable here"
30
+ * are opposite facts that would otherwise render identically, and the second is a run that is
31
+ * going to spend its tester step on connection failures. The second cause is the worse of the
32
+ * two: the run record then asserts the environment was reached at an address the container never
33
+ * got, which puts the evidence further from the cause than no bridge at all. The transport says
34
+ * so once at dispatch; nothing downstream branches on it.
35
+ */
36
+ unbridgeable: readonly UnbridgeableEnvironment[];
37
+ }
38
+ /**
39
+ * Grade every environment a job was handed for the host bridge.
40
+ *
41
+ * Takes the WHOLE list rather than one environment because a job is routinely handed several: its
42
+ * own ephemeral environment, a live peer service's environment for a cross-service integration
43
+ * test, and a frontend flow's resolved backend bindings. Bridging only the first one is how the
44
+ * bridge came to fire for a tester's own environment and not for the peer it was testing against,
45
+ * which fails in exactly the same way and reads as exactly the same "the environment is down".
46
+ *
47
+ * The address a bridge may name comes off the environment it belongs to, never out of a shared bag
48
+ * keyed by hostname, and that pairing is the security property: the HOST side of every bridge is,
49
+ * structurally, a host this job was handed. A free-form map would let a provider re-point any name
50
+ * inside the container, including the harness's own alias for reaching back to its host.
51
+ */
52
+ export declare function planEnvironmentBridges(environments: readonly (DispatchEnvironment | null | undefined)[]): EnvironmentBridgePlan;
53
+ /**
54
+ * The bridges expressible as a NAME-TO-ADDRESS mapping, which is every bridge except a
55
+ * `host-gateway` one.
56
+ *
57
+ * A runtime with no host-gateway concept (a Kubernetes pod, whose `hostAliases` entries are
58
+ * `{ ip, hostnames[] }`) can honour the address half and genuinely cannot honour the other. The
59
+ * split is stated here so each such transport reads the same answer rather than filtering the
60
+ * union inline and quietly disagreeing about what it dropped.
61
+ */
62
+ export declare function addressBridges(bridges: readonly HostBridge[]): {
63
+ host: string;
64
+ ip: string;
65
+ }[];
66
+ //# sourceMappingURL=environmentBridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environmentBridge.d.ts","sourceRoot":"","sources":["../../../src/modules/shared/environmentBridge.ts"],"names":[],"mappings":"AAgBA,OAAO,KAAK,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAGnG,6EAA6E;AAC7E,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,gBAAgB,CAAA;CACzB;AAED,yFAAyF;AACzF,MAAM,WAAW,uBAAuB;IACtC,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,iBAAiB,CAAA;CACzB;AAED,wFAAwF;AACxF,MAAM,WAAW,qBAAqB;IACpC;;;;;;;OAOG;IACH,OAAO,EAAE,SAAS,UAAU,EAAE,CAAA;IAC9B;;;;;;;;;;;;OAYG;IACH,YAAY,EAAE,SAAS,uBAAuB,EAAE,CAAA;CACjD;AAWD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,sBAAsB,CACpC,YAAY,EAAE,SAAS,CAAC,mBAAmB,GAAG,IAAI,GAAG,SAAS,CAAC,EAAE,GAChE,qBAAqB,CAsBvB;AAED;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,EAAE,CAO7F"}
@@ -0,0 +1,78 @@
1
+ // Which hosts an agent container must have re-pointed to reach the environments a run handed it,
2
+ // what to re-point each one AT, and which of them no container can ever reach.
3
+ //
4
+ // The RULE lives in kernel (`classifyLocalMachineHostBridge`, in
5
+ // `shared/environment-host-bridge.logic.ts`), which is also where the reasoning is: why a loopback
6
+ // environment URL is a dead end inside a container, why the fix is to make the ONE name mean the
7
+ // right thing in each place rather than to publish a second URL, why `localhost` and a bare IP
8
+ // literal are local names no hosts-file entry can re-point, and which addresses a bridge may name.
9
+ // What lives here is the URL half, because kernel compiles with no `URL`.
10
+ //
11
+ // Here rather than beside one transport because TWO of them build the same bridges out of the same
12
+ // dispatch options and cannot be allowed to disagree: the local Docker/Podman transport emits
13
+ // `--add-host`, and the Kubernetes runner transport emits a pod's `hostAliases`. A name-to-address
14
+ // mapping is expressible in both. Only the `host-gateway` target is Docker-family-specific, which
15
+ // is why it is a discriminated target rather than a second list.
16
+ import { classifyLocalMachineHostBridge, hostBridgeKey } from '@cat-factory/kernel';
17
+ /** The hostname of `url`, or null when it has none or is not a URL (never a guess). */
18
+ function hostnameOf(url) {
19
+ try {
20
+ return new URL(url).hostname || null;
21
+ }
22
+ catch {
23
+ return null;
24
+ }
25
+ }
26
+ /**
27
+ * Grade every environment a job was handed for the host bridge.
28
+ *
29
+ * Takes the WHOLE list rather than one environment because a job is routinely handed several: its
30
+ * own ephemeral environment, a live peer service's environment for a cross-service integration
31
+ * test, and a frontend flow's resolved backend bindings. Bridging only the first one is how the
32
+ * bridge came to fire for a tester's own environment and not for the peer it was testing against,
33
+ * which fails in exactly the same way and reads as exactly the same "the environment is down".
34
+ *
35
+ * The address a bridge may name comes off the environment it belongs to, never out of a shared bag
36
+ * keyed by hostname, and that pairing is the security property: the HOST side of every bridge is,
37
+ * structurally, a host this job was handed. A free-form map would let a provider re-point any name
38
+ * inside the container, including the harness's own alias for reaching back to its host.
39
+ */
40
+ export function planEnvironmentBridges(environments) {
41
+ const bridges = new Map();
42
+ const unbridgeable = new Map();
43
+ for (const environment of environments) {
44
+ if (!environment?.url)
45
+ continue;
46
+ const hostname = hostnameOf(environment.url);
47
+ if (!hostname)
48
+ continue;
49
+ const verdict = classifyLocalMachineHostBridge(hostname, environment.address);
50
+ if (verdict.kind === 'bridge') {
51
+ bridges.set(hostBridgeKey(verdict), { host: verdict.host, target: verdict.target });
52
+ }
53
+ else if (verdict.kind === 'unbridgeable') {
54
+ unbridgeable.set(environment.url, { url: environment.url, cause: verdict.cause });
55
+ }
56
+ }
57
+ return {
58
+ bridges: [...bridges.entries()]
59
+ .sort(([a], [b]) => (a < b ? -1 : a > b ? 1 : 0))
60
+ .map(([, v]) => v),
61
+ unbridgeable: [...unbridgeable.values()].sort((a, b) => a.url < b.url ? -1 : a.url > b.url ? 1 : 0),
62
+ };
63
+ }
64
+ /**
65
+ * The bridges expressible as a NAME-TO-ADDRESS mapping, which is every bridge except a
66
+ * `host-gateway` one.
67
+ *
68
+ * A runtime with no host-gateway concept (a Kubernetes pod, whose `hostAliases` entries are
69
+ * `{ ip, hostnames[] }`) can honour the address half and genuinely cannot honour the other. The
70
+ * split is stated here so each such transport reads the same answer rather than filtering the
71
+ * union inline and quietly disagreeing about what it dropped.
72
+ */
73
+ export function addressBridges(bridges) {
74
+ return bridges
75
+ .filter((bridge) => bridge.target !== 'host-gateway')
76
+ .map((bridge) => ({ host: bridge.host, ip: bridge.target.ip }));
77
+ }
78
+ //# sourceMappingURL=environmentBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"environmentBridge.js","sourceRoot":"","sources":["../../../src/modules/shared/environmentBridge.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cat-factory/integrations",
3
- "version": "0.167.0",
3
+ "version": "0.169.0",
4
4
  "description": "External-system integration domain logic for the Agent Architecture Board (GitHub, documents, tasks, environments, runners).",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,15 +24,15 @@
24
24
  "access": "public"
25
25
  },
26
26
  "dependencies": {
27
- "@cat-factory/contracts": "0.335.0",
28
- "@cat-factory/kernel": "0.324.0",
27
+ "@cat-factory/contracts": "0.337.0",
28
+ "@cat-factory/kernel": "0.326.0",
29
29
  "ai": "^7.0.85",
30
30
  "p-map": "^7.0.7",
31
31
  "undici": "^8.10.0",
32
32
  "yaml": "^2.9.0"
33
33
  },
34
34
  "devDependencies": {
35
- "@cat-factory/caching": "0.20.56",
35
+ "@cat-factory/caching": "0.20.58",
36
36
  "typescript": "7.0.2",
37
37
  "valibot": "^1.4.2",
38
38
  "vitest": "^4.1.11"