@cat-factory/integrations 0.48.2 → 0.50.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.
@@ -1,9 +1,19 @@
1
+ import { CustomManifestTypeRegistry } from './environments/custom-manifest-types.js';
1
2
  import { type EnvironmentBackendRegistry } from './environments/environment-backends.js';
2
3
  import { type RunnerBackendRegistry } from './runners/runner-backends.js';
3
4
  /** The set of app-owned backend registries the composition root builds and injects. */
4
5
  export interface BackendRegistries {
5
6
  environmentBackendRegistry: EnvironmentBackendRegistry;
6
7
  runnerBackendRegistry: RunnerBackendRegistry;
8
+ /**
9
+ * The code-defined `custom` provision-type catalog. A deployment/provider package registers a
10
+ * custom manifest type by reference (`registries.customManifestTypeRegistry.register(...)`) the
11
+ * same way it registers a custom backend; the connection service merges these with the
12
+ * workspace-defined rows (`listCustomTypes`) so a programmatically-registered type surfaces in
13
+ * the infrastructure custom-type editor AND the per-service provisioning picker. Starts empty
14
+ * (the built-ins are the `manifest`/`kubernetes` BACKENDS, not custom manifest types).
15
+ */
16
+ customManifestTypeRegistry: CustomManifestTypeRegistry;
7
17
  }
8
18
  /** Build the backend registries pre-loaded with the built-in (`manifest` + `kubernetes`) kinds. */
9
19
  export declare function createBackendRegistries(): BackendRegistries;
@@ -1 +1 @@
1
- {"version":3,"file":"backend-registries.d.ts","sourceRoot":"","sources":["../../src/modules/backend-registries.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,8BAA8B,CAAA;AASrC,uFAAuF;AACvF,MAAM,WAAW,iBAAiB;IAChC,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,qBAAqB,EAAE,qBAAqB,CAAA;CAC7C;AAED,mGAAmG;AACnG,wBAAgB,uBAAuB,IAAI,iBAAiB,CAK3D"}
1
+ {"version":3,"file":"backend-registries.d.ts","sourceRoot":"","sources":["../../src/modules/backend-registries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAA;AACpF,OAAO,EAEL,KAAK,0BAA0B,EAChC,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,8BAA8B,CAAA;AASrC,uFAAuF;AACvF,MAAM,WAAW,iBAAiB;IAChC,0BAA0B,EAAE,0BAA0B,CAAA;IACtD,qBAAqB,EAAE,qBAAqB,CAAA;IAC5C;;;;;;;OAOG;IACH,0BAA0B,EAAE,0BAA0B,CAAA;CACvD;AAED,mGAAmG;AACnG,wBAAgB,uBAAuB,IAAI,iBAAiB,CAM3D"}
@@ -1,3 +1,4 @@
1
+ import { CustomManifestTypeRegistry } from './environments/custom-manifest-types.js';
1
2
  import { defaultEnvironmentBackendRegistry, } from './environments/environment-backends.js';
2
3
  import { defaultRunnerBackendRegistry, } from './runners/runner-backends.js';
3
4
  /** Build the backend registries pre-loaded with the built-in (`manifest` + `kubernetes`) kinds. */
@@ -5,6 +6,7 @@ export function createBackendRegistries() {
5
6
  return {
6
7
  environmentBackendRegistry: defaultEnvironmentBackendRegistry(),
7
8
  runnerBackendRegistry: defaultRunnerBackendRegistry(),
9
+ customManifestTypeRegistry: new CustomManifestTypeRegistry(),
8
10
  };
9
11
  }
10
12
  //# sourceMappingURL=backend-registries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"backend-registries.js","sourceRoot":"","sources":["../../src/modules/backend-registries.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,iCAAiC,GAElC,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACL,4BAA4B,GAE7B,MAAM,8BAA8B,CAAA;AAerC,mGAAmG;AACnG,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,0BAA0B,EAAE,iCAAiC,EAAE;QAC/D,qBAAqB,EAAE,4BAA4B,EAAE;KACtD,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"backend-registries.js","sourceRoot":"","sources":["../../src/modules/backend-registries.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,yCAAyC,CAAA;AACpF,OAAO,EACL,iCAAiC,GAElC,MAAM,wCAAwC,CAAA;AAC/C,OAAO,EACL,4BAA4B,GAE7B,MAAM,8BAA8B,CAAA;AAwBrC,mGAAmG;AACnG,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,0BAA0B,EAAE,iCAAiC,EAAE;QAC/D,qBAAqB,EAAE,4BAA4B,EAAE;QACrD,0BAA0B,EAAE,IAAI,0BAA0B,EAAE;KAC7D,CAAA;AACH,CAAC"}
@@ -33,8 +33,13 @@ export interface DetectProvisioningOptions {
33
33
  * user's selected tab via `options.prefer`: on the `docker-compose` tab a compose file wins when
34
34
  * present (even if Kubernetes manifests also exist); otherwise (incl. no preference) it prefers a
35
35
  * `kubernetes` recommendation (richer) when manifests are present. Either way it falls back to the
36
- * other kind, then to `infraless` when nothing is found. Every inferred field carries a confidence
37
- * note; ambiguous choices (overlay, helm) are surfaced as low-confidence candidates, never auto-applied.
36
+ * other kind, then to `infraless` when nothing is found.
37
+ *
38
+ * Monorepo-aware: when `options.directory` scopes to a service subdir, it checks BOTH the colocated
39
+ * service dir AND — if nothing is colocated — the repo's ROOT SHARED deploy dirs for a per-service
40
+ * slice keyed by the service name. Every inferred field carries a confidence note; ambiguous choices
41
+ * (which overlay, which manifest root, which shared slice, which compose service) are surfaced as
42
+ * candidates for the user to pick, never silently auto-applied beyond the pre-selected one.
38
43
  */
39
44
  export declare function detectKubernetesProvisioning(reader: ProvisioningRepoReader, options?: DetectProvisioningOptions): Promise<ProvisioningRecommendation>;
40
45
  //# sourceMappingURL=provision-detect.logic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"provision-detect.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/environments/provision-detect.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAOV,aAAa,EAGb,0BAA0B,EAE3B,MAAM,wBAAwB,CAAA;AAc/B;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IAC3E,aAAa,CACX,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAA;CAC3D;AAED,MAAM,WAAW,yBAAyB;IACxC,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,aAAa,CAAA;CACvB;AA2hBD;;;;;;;GAOG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,sBAAsB,EAC9B,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,0BAA0B,CAAC,CA0IrC"}
1
+ {"version":3,"file":"provision-detect.logic.d.ts","sourceRoot":"","sources":["../../../src/modules/environments/provision-detect.logic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAOV,aAAa,EAKb,0BAA0B,EAG3B,MAAM,wBAAwB,CAAA;AAc/B;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,CAAA;IAC3E,aAAa,CACX,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC,CAAA;CAC3D;AAED,MAAM,WAAW,yBAAyB;IACxC,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAA;IACf;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,aAAa,CAAA;CACvB;AA45BD;;;;;;;;;;;;GAYG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,sBAAsB,EAC9B,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,0BAA0B,CAAC,CAgFrC"}
@@ -1,8 +1,29 @@
1
1
  import { parse as parseYaml, parseAllDocuments } from 'yaml';
2
2
  const PINNED_SEMVER = /^v?\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;
3
3
  const KUSTOMIZATION_FILES = ['kustomization.yaml', 'kustomization.yml', 'Kustomization'];
4
- const COMPOSE_FILES = ['compose.yaml', 'compose.yml', 'docker-compose.yaml', 'docker-compose.yml'];
5
- // Directories (relative to the service root) commonly holding the deploy manifests.
4
+ // Compose file names, canonical-first: the officially-preferred `compose.yaml`, then the legacy
5
+ // `docker-compose.*`, then the auto-merged `*.override.*`, then the common env-variant names. The
6
+ // first present name wins as the recommended `composePath`, so the base names must precede the
7
+ // overrides/variants.
8
+ const COMPOSE_FILES = [
9
+ 'compose.yaml',
10
+ 'compose.yml',
11
+ 'docker-compose.yaml',
12
+ 'docker-compose.yml',
13
+ 'compose.override.yaml',
14
+ 'compose.override.yml',
15
+ 'docker-compose.override.yaml',
16
+ 'docker-compose.override.yml',
17
+ 'docker-compose.prod.yaml',
18
+ 'docker-compose.prod.yml',
19
+ 'docker-compose.dev.yaml',
20
+ 'docker-compose.dev.yml',
21
+ ];
22
+ // Directories (relative to the service root) a compose file commonly nests under, in addition to
23
+ // the root itself. One `listDir` per entry (cheap membership test against COMPOSE_FILES).
24
+ const COMPOSE_DIR_CANDIDATES = ['', 'deploy', 'docker', '.docker', 'compose'];
25
+ // Directories (relative to the service root) commonly holding the deploy manifests. Common names
26
+ // FIRST so the read budget is spent on the likely layouts before the rare ones.
6
27
  const K8S_DIR_CANDIDATES = [
7
28
  '',
8
29
  'k8s',
@@ -10,15 +31,57 @@ const K8S_DIR_CANDIDATES = [
10
31
  'deploy',
11
32
  'deployment',
12
33
  'manifests',
34
+ 'charts',
35
+ 'chart',
36
+ 'helm',
37
+ 'kustomize',
13
38
  '.k8s',
39
+ '.kube',
40
+ 'ops',
14
41
  'ops/k8s',
42
+ 'infra',
43
+ 'infrastructure',
15
44
  'infra/k8s',
16
45
  'infra/kubernetes',
46
+ 'infra/manifests',
47
+ 'deploy/k8s',
48
+ 'deploy/kubernetes',
49
+ 'config/k8s',
50
+ 'gitops',
51
+ '.deploy',
17
52
  ];
18
53
  // Wrapper dirs (e.g. `deploy/`, `deployment/`) frequently nest the actual manifests under a
19
54
  // `k8s`/`kubernetes` child (`deployment/k8s/{base,overlays}`); when a candidate has no direct
20
55
  // markers we descend one level into such a child so that layout still resolves.
21
- const K8S_NESTED_SUBDIRS = ['k8s', 'kubernetes', 'manifests'];
56
+ const K8S_NESTED_SUBDIRS = [
57
+ 'k8s',
58
+ 'kubernetes',
59
+ 'manifests',
60
+ 'overlays',
61
+ 'base',
62
+ 'helm',
63
+ 'charts',
64
+ 'kustomize',
65
+ ];
66
+ // Root shared-deploy dirs a monorepo keys per-service subfolders under (e.g. `deploy/<svc>`,
67
+ // `k8s/<svc>`, `manifests/services/<svc>`). Scanned at the REPO ROOT only when a service
68
+ // subdirectory was given, to locate the slice belonging to this service. Deliberately excludes
69
+ // `apps/` — that is almost always the SOURCE tree, not deploy manifests, so listing every app as a
70
+ // "deploy folder" candidate is noise (a service whose manifests really live under `apps/<svc>` is
71
+ // already covered by the colocated scan of its own directory).
72
+ const SHARED_DEPLOY_ROOTS = [
73
+ 'deploy',
74
+ 'k8s',
75
+ 'kubernetes',
76
+ 'manifests',
77
+ 'manifests/services',
78
+ 'infra/manifests',
79
+ ];
80
+ // Fast membership test used to drop a shared-root child that is ITSELF another shared root (e.g.
81
+ // `manifests/services`, surfaced as a child of `manifests`) so it isn't offered as a bogus slice.
82
+ const SHARED_DEPLOY_ROOT_SET = new Set(SHARED_DEPLOY_ROOTS);
83
+ // The most k8s roots we collect as candidates (bounds the candidate list + the reads it triggers).
84
+ const MAX_MANIFEST_ROOTS = 6;
22
85
  // Overlay names ranked most→least likely to be the ephemeral/preview environment.
23
86
  const OVERLAY_RANK = [
24
87
  'prenv',
@@ -35,8 +98,14 @@ const OVERLAY_RANK = [
35
98
  'qa',
36
99
  ];
37
100
  const ENV_EXAMPLE_FILES = ['.env.example', '.env.sample', '.env.template', '.env.dist'];
38
- // Bounds the total reads so a pathological repo can't fan out unboundedly.
39
- const READ_BUDGET = 80;
101
+ // Bounds the total reads so a pathological repo can't fan out unboundedly. Raised from 80 because
102
+ // the candidate lists grew (more k8s dirs, compose dirs, shared-deploy roots) and manifest-root
103
+ // collection no longer short-circuits on the first hit — still tiny versus a real API. Reads are
104
+ // intentionally SEQUENTIAL (not batched/parallel): the budget short-circuit and the "first present
105
+ // name/dir wins" ordering both depend on deterministic, in-order accounting. In practice a real
106
+ // repo resolves in a handful of reads well before the cap; the cap only bites on decoy-heavy repos,
107
+ // where truncation is surfaced as a note (see `Scanner.exhausted`).
108
+ const READ_BUDGET = 200;
40
109
  const MAX_IMAGES = 8;
41
110
  /** Join + normalize repo-relative path segments, collapsing `.`/`..` (resolves `../base` refs). */
42
111
  function joinPath(...parts) {
@@ -97,6 +166,10 @@ class Scanner {
97
166
  this.reader = reader;
98
167
  this.gitRef = gitRef;
99
168
  }
169
+ /** True once the read budget was hit — the scan may have stopped short of the full repo. */
170
+ get exhausted() {
171
+ return this.reads >= READ_BUDGET;
172
+ }
100
173
  async getFile(path) {
101
174
  if (this.reads >= READ_BUDGET)
102
175
  return null;
@@ -293,34 +366,102 @@ async function evaluateK8sDir(scanner, dir, entries) {
293
366
  }
294
367
  return null;
295
368
  }
296
- async function findKubernetesRoot(scanner, root) {
369
+ /**
370
+ * Collect EVERY k8s manifest root under `root` (in `K8S_DIR_CANDIDATES` order — common names first),
371
+ * descending one level into wrapper dirs. Bounded by `MAX_MANIFEST_ROOTS` + the read budget. The
372
+ * first entry is the highest-ranked (the one the detector prefills); the rest drive the "which root"
373
+ * picker. Dedupes by directory so a dir reachable both directly and as a nested child isn't listed twice.
374
+ */
375
+ async function collectKubernetesRoots(scanner, root) {
376
+ const found = [];
377
+ const seen = new Set();
378
+ const add = (r) => {
379
+ if (seen.has(r.dir))
380
+ return;
381
+ seen.add(r.dir);
382
+ found.push(r);
383
+ };
297
384
  for (const candidate of K8S_DIR_CANDIDATES) {
385
+ if (found.length >= MAX_MANIFEST_ROOTS)
386
+ break;
298
387
  const dir = joinPath(root, candidate);
299
388
  const entries = await scanner.listDir(dir);
300
389
  if (entries.length === 0)
301
390
  continue;
302
391
  const direct = await evaluateK8sDir(scanner, dir, entries);
303
- if (direct)
304
- return direct;
392
+ if (direct) {
393
+ add(direct);
394
+ continue;
395
+ }
305
396
  // A wrapper dir (e.g. `deployment/`) may nest the manifests under a `k8s`/`kubernetes` child
306
397
  // (`deployment/k8s/{base,overlays}`). Descend one level into any such child that exists.
307
398
  for (const entry of entries) {
399
+ if (found.length >= MAX_MANIFEST_ROOTS)
400
+ break;
308
401
  if (entry.type !== 'dir' || !K8S_NESTED_SUBDIRS.includes(entry.name))
309
402
  continue;
310
403
  const nestedDir = joinPath(dir, entry.name);
311
404
  const nested = await evaluateK8sDir(scanner, nestedDir, await scanner.listDir(nestedDir));
312
405
  if (nested)
313
- return nested;
406
+ add(nested);
314
407
  }
315
408
  }
316
- return null;
409
+ return found;
410
+ }
411
+ /**
412
+ * When a service SUBDIR was given but its manifests aren't colocated, scan the repo's root
413
+ * shared-deploy dirs for a per-service slice keyed by the service basename. Returns every candidate
414
+ * slice (an immediate child dir of a `SHARED_DEPLOY_ROOTS` entry), with the basename-matching one(s)
415
+ * flagged `recommended`. Case-insensitive fallback when no exact match exists.
416
+ */
417
+ async function findServiceDeployCandidates(scanner, serviceBasename) {
418
+ const candidates = [];
419
+ const seen = new Set();
420
+ for (const deployRoot of SHARED_DEPLOY_ROOTS) {
421
+ for (const entry of await scanner.listDir(deployRoot)) {
422
+ if (entry.type !== 'dir')
423
+ continue;
424
+ const path = joinPath(deployRoot, entry.name);
425
+ if (seen.has(path))
426
+ continue;
427
+ // Skip a child that is itself a shared-deploy root (e.g. `manifests/services`): it's a
428
+ // container for slices, not a per-service slice of its own.
429
+ if (SHARED_DEPLOY_ROOT_SET.has(path))
430
+ continue;
431
+ seen.add(path);
432
+ candidates.push({ path, name: entry.name });
433
+ }
434
+ }
435
+ if (candidates.length === 0)
436
+ return [];
437
+ // Flag exactly ONE slice recommended: the first exact-basename match (SHARED_DEPLOY_ROOTS order),
438
+ // else the first case-insensitive match, else none (the user picks from the surfaced list).
439
+ const lower = serviceBasename.toLowerCase();
440
+ const exactIdx = candidates.findIndex((c) => c.name === serviceBasename);
441
+ const chosenIdx = exactIdx !== -1 ? exactIdx : candidates.findIndex((c) => c.name.toLowerCase() === lower);
442
+ return candidates.map((c, i) => ({ ...c, recommended: i === chosenIdx }));
317
443
  }
318
- async function findComposeFile(scanner, root) {
319
- const entries = await scanner.listDir(root);
320
- const names = new Set(entries.filter((e) => e.type !== 'dir').map((e) => e.name));
321
- for (const candidate of COMPOSE_FILES) {
322
- if (names.has(candidate))
323
- return joinPath(root, candidate);
444
+ /**
445
+ * Locate a Docker Compose file for the service, checking the service root AND the dirs it commonly
446
+ * nests under (`deploy/`, `docker/`, …). One `listDir` per candidate dir; the canonical file name
447
+ * wins (COMPOSE_FILES is canonical-first). Also parses the `services:` keys so callers can surface
448
+ * a service picker when several are declared.
449
+ */
450
+ async function findCompose(scanner, root) {
451
+ for (const dir of COMPOSE_DIR_CANDIDATES) {
452
+ const dirPath = joinPath(root, dir);
453
+ const entries = await scanner.listDir(dirPath);
454
+ if (entries.length === 0)
455
+ continue;
456
+ const names = new Set(entries.filter((e) => e.type !== 'dir').map((e) => e.name));
457
+ for (const candidate of COMPOSE_FILES) {
458
+ if (!names.has(candidate))
459
+ continue;
460
+ const path = joinPath(dirPath, candidate);
461
+ const content = await scanner.getFile(path);
462
+ const services = content ? Object.keys(asRecord(parseOne(content)?.services) ?? {}) : [];
463
+ return { path, services };
464
+ }
324
465
  }
325
466
  return null;
326
467
  }
@@ -452,12 +593,33 @@ async function inferHelmReleases(scanner, root, k8sDir) {
452
593
  }
453
594
  return { releases: [], note: null };
454
595
  }
455
- function composeRecommendation(composePath, kubernetesAlsoExists = false) {
596
+ /** The last path segment of a repo-relative dir; `''` (the repo root) is rendered as `.`. */
597
+ function dirLabel(dir) {
598
+ return dir === '' ? '.' : (dir.split('/').pop() ?? dir);
599
+ }
600
+ /**
601
+ * Build the compose-service picker when a compose file declares MORE THAN ONE service. Pre-selects
602
+ * the service whose key matches the service directory's basename, else the first declared service.
603
+ * One/zero services ⇒ `undefined` (no picker).
604
+ */
605
+ function buildComposeServiceCandidates(compose, serviceBasename) {
606
+ if (compose.services.length <= 1)
607
+ return undefined;
608
+ const recommendedKey = compose.services.includes(serviceBasename)
609
+ ? serviceBasename
610
+ : compose.services[0];
611
+ return compose.services.map((service) => ({
612
+ composePath: compose.path,
613
+ service,
614
+ recommended: service === recommendedKey,
615
+ }));
616
+ }
617
+ function composeRecommendation(compose, serviceBasename, kubernetesAlsoExists = false) {
456
618
  const notes = [
457
619
  {
458
620
  field: 'provisionType',
459
621
  confidence: 'high',
460
- message: `Detected a Docker Compose file at ${composePath}.`,
622
+ message: `Detected a Docker Compose file at ${compose.path}.`,
461
623
  },
462
624
  ];
463
625
  // Symmetric to the kubernetes path's `compose` note: when we recommend compose because it's
@@ -469,9 +631,19 @@ function composeRecommendation(composePath, kubernetesAlsoExists = false) {
469
631
  message: 'Kubernetes manifests also exist in this repo; recommending docker-compose because it is your selected provision type. Switch to kubernetes if that is the test target.',
470
632
  });
471
633
  }
634
+ const composeServiceCandidates = buildComposeServiceCandidates(compose, serviceBasename);
635
+ if (composeServiceCandidates) {
636
+ const rec = composeServiceCandidates.find((s) => s.recommended);
637
+ notes.push({
638
+ field: 'composeService',
639
+ confidence: 'low',
640
+ message: `The compose file declares ${composeServiceCandidates.length} services; pre-selected "${rec?.service ?? composeServiceCandidates[0].service}" for this block. The file is the deploy target — the service choice is advisory; pick another if that's wrong.`,
641
+ });
642
+ }
472
643
  return {
473
644
  detected: true,
474
- provisioning: { type: 'docker-compose', composePath },
645
+ provisioning: { type: 'docker-compose', composePath: compose.path },
646
+ ...(composeServiceCandidates ? { composeServiceCandidates } : {}),
475
647
  notes,
476
648
  };
477
649
  }
@@ -489,30 +661,34 @@ function noneRecommendation() {
489
661
  };
490
662
  }
491
663
  /**
492
- * Detect a recommended provisioning config for a service's repo. The search order honors the
493
- * user's selected tab via `options.prefer`: on the `docker-compose` tab a compose file wins when
494
- * present (even if Kubernetes manifests also exist); otherwise (incl. no preference) it prefers a
495
- * `kubernetes` recommendation (richer) when manifests are present. Either way it falls back to the
496
- * other kind, then to `infraless` when nothing is found. Every inferred field carries a confidence
497
- * note; ambiguous choices (overlay, helm) are surfaced as low-confidence candidates, never auto-applied.
664
+ * Build the full kubernetes recommendation from the collected `roots` (roots[0] is the chosen one).
665
+ * `lookupRoot` is the base directory used for the helm + `.env.example` lookups (the service root for
666
+ * a colocated pick, the repo root for a shared-slice pick). Surfaces sibling roots as
667
+ * `manifestRootCandidates`, overlays as `overlayCandidates`, and any monorepo slices as
668
+ * `serviceDirCandidates` none auto-applied beyond the pre-selected one.
498
669
  */
499
- export async function detectKubernetesProvisioning(reader, options = {}) {
500
- const root = joinPath(options.directory ?? '');
501
- const scanner = new Scanner(reader, options.gitRef);
502
- const k8s = await findKubernetesRoot(scanner, root);
503
- const composePath = await findComposeFile(scanner, root);
504
- // Honor the selected tab: on docker-compose, recommend the compose file first (noting any
505
- // co-existing k8s manifests). Falls through to kubernetes when the user is on compose but no
506
- // compose file exists. With no preference (or any non-compose tab) we keep the historical
507
- // kubernetes-first order.
508
- if (options.prefer === 'docker-compose' && composePath) {
509
- return composeRecommendation(composePath, k8s !== null);
670
+ async function buildKubernetesRecommendation(scanner, roots, lookupRoot, opts) {
671
+ const notes = [];
672
+ const chosen = roots[0];
673
+ if (opts.chosenSlice) {
674
+ notes.push({
675
+ field: 'serviceDir',
676
+ confidence: opts.chosenSlice.recommended ? 'high' : 'low',
677
+ // Only claim a name match when the slice actually matched the service basename; otherwise it's
678
+ // the first slice that happened to hold manifests, so don't overstate the confidence.
679
+ message: opts.chosenSlice.recommended
680
+ ? `Found this service's manifests in the shared deploy directory ${opts.chosenSlice.path} (matched "${opts.chosenSlice.name}"). Pick a different slice below if that's wrong.`
681
+ : `Used manifests from the shared deploy directory ${opts.chosenSlice.path} (no slice matched this service's name). Pick a different slice below if that's wrong.`,
682
+ });
510
683
  }
511
- if (!k8s) {
512
- return composePath ? composeRecommendation(composePath) : noneRecommendation();
684
+ else if (opts.serviceDirCandidates && opts.serviceDirCandidates.length > 0) {
685
+ notes.push({
686
+ field: 'serviceDir',
687
+ confidence: 'low',
688
+ message: `A root shared deploy directory also holds a slice named after this service; the colocated manifests were used. Pick the shared slice below if that is the deploy target instead.`,
689
+ });
513
690
  }
514
- const notes = [];
515
- const { path, renderer, overlayCandidates } = await resolveManifestSource(scanner, k8s);
691
+ const { path, renderer, overlayCandidates } = await resolveManifestSource(scanner, chosen);
516
692
  // The colocated path stored on the service must be non-empty (the schema requires
517
693
  // minLength(1)), so represent the repo root as '.'. The raw `path` ('' = repo root for the
518
694
  // reader) is still what the internal scan calls below use to list/read files.
@@ -529,6 +705,24 @@ export async function detectKubernetesProvisioning(reader, options = {}) {
529
705
  ? `Found a kustomization at ${sourcePath} ⇒ kustomize renderer (needs the container-backed deploy adapter).`
530
706
  : `No kustomization at ${sourcePath} ⇒ raw manifests.`,
531
707
  });
708
+ // Several k8s roots resolved — surface the "which root" picker (complements the overlay picker).
709
+ let manifestRootCandidates;
710
+ if (roots.length > 1) {
711
+ manifestRootCandidates = roots.map((r, i) => ({
712
+ // The recommended root uses the RESOLVED source path (which may be a kustomize overlay subdir,
713
+ // e.g. `k8s/overlays/prenv`) so its chip matches `manifestSource.path` and stays highlighted —
714
+ // and picking it re-applies that same overlay-resolved path rather than the bare root.
715
+ path: i === 0 ? sourcePath : r.dir || '.',
716
+ name: dirLabel(r.dir),
717
+ renderer: r.hasKustomization ? 'kustomize' : 'raw',
718
+ recommended: i === 0,
719
+ }));
720
+ notes.push({
721
+ field: 'manifestRoot',
722
+ confidence: 'low',
723
+ message: `Found ${roots.length} manifest locations; pre-selected ${dirLabel(chosen.dir)}. Pick another below if that's wrong.`,
724
+ });
725
+ }
532
726
  if (overlayCandidates && overlayCandidates.length > 1) {
533
727
  const recommended = overlayCandidates.find((o) => o.recommended);
534
728
  notes.push({
@@ -572,7 +766,7 @@ export async function detectKubernetesProvisioning(reader, options = {}) {
572
766
  const secretInjections = [];
573
767
  if (scan.secretGenerator) {
574
768
  const envFilePath = joinPath(scan.secretGenerator.baseDir, scan.secretGenerator.envFile);
575
- const exampleDirs = [...new Set([scan.secretGenerator.baseDir, path, root])];
769
+ const exampleDirs = [...new Set([scan.secretGenerator.baseDir, path, lookupRoot])];
576
770
  let keys = [];
577
771
  for (const dir of exampleDirs) {
578
772
  const example = await scanner.getFirstFile(dir, ENV_EXAMPLE_FILES);
@@ -595,14 +789,21 @@ export async function detectKubernetesProvisioning(reader, options = {}) {
595
789
  : `A secretGenerator reads ${envFilePath} but no .env.example was found — add the keys it needs manually.`,
596
790
  });
597
791
  }
598
- const helm = await inferHelmReleases(scanner, root, k8s.dir);
792
+ const helm = await inferHelmReleases(scanner, lookupRoot, chosen.dir);
599
793
  if (helm.note)
600
794
  notes.push(helm.note);
601
- if (composePath) {
795
+ if (opts.compose) {
602
796
  notes.push({
603
797
  field: 'compose',
604
798
  confidence: 'low',
605
- message: `A Docker Compose file also exists at ${composePath} (likely local dev). Recommending kubernetes; switch to docker-compose if that's the test target.`,
799
+ message: `A Docker Compose file also exists at ${opts.compose.path} (likely local dev). Recommending kubernetes; switch to docker-compose if that's the test target.`,
800
+ });
801
+ }
802
+ if (scanner.exhausted) {
803
+ notes.push({
804
+ field: 'provisionType',
805
+ confidence: 'low',
806
+ message: "The repository scan was truncated (read budget reached); an unusual layout may have been missed. Browse the repo manually if your manifests weren't found.",
606
807
  });
607
808
  }
608
809
  const provisioning = {
@@ -618,7 +819,99 @@ export async function detectKubernetesProvisioning(reader, options = {}) {
618
819
  ...(urlSource ? { urlSource } : {}),
619
820
  ...(namespace ? { namespace } : {}),
620
821
  ...(overlayCandidates ? { overlayCandidates } : {}),
822
+ ...(manifestRootCandidates ? { manifestRootCandidates } : {}),
823
+ ...(opts.serviceDirCandidates && opts.serviceDirCandidates.length > 0
824
+ ? { serviceDirCandidates: opts.serviceDirCandidates }
825
+ : {}),
621
826
  notes,
622
827
  };
623
828
  }
829
+ /**
830
+ * Detect a recommended provisioning config for a service's repo. The search order honors the
831
+ * user's selected tab via `options.prefer`: on the `docker-compose` tab a compose file wins when
832
+ * present (even if Kubernetes manifests also exist); otherwise (incl. no preference) it prefers a
833
+ * `kubernetes` recommendation (richer) when manifests are present. Either way it falls back to the
834
+ * other kind, then to `infraless` when nothing is found.
835
+ *
836
+ * Monorepo-aware: when `options.directory` scopes to a service subdir, it checks BOTH the colocated
837
+ * service dir AND — if nothing is colocated — the repo's ROOT SHARED deploy dirs for a per-service
838
+ * slice keyed by the service name. Every inferred field carries a confidence note; ambiguous choices
839
+ * (which overlay, which manifest root, which shared slice, which compose service) are surfaced as
840
+ * candidates for the user to pick, never silently auto-applied beyond the pre-selected one.
841
+ */
842
+ export async function detectKubernetesProvisioning(reader, options = {}) {
843
+ const root = joinPath(options.directory ?? '');
844
+ const repoScanEnabled = root !== '';
845
+ const serviceBasename = root.split('/').pop() ?? '';
846
+ const scanner = new Scanner(reader, options.gitRef);
847
+ const roots = await collectKubernetesRoots(scanner, root);
848
+ const compose = await findCompose(scanner, root);
849
+ // Honor the selected tab: on docker-compose, recommend the compose file first (noting any
850
+ // co-existing k8s manifests). Falls through to kubernetes when the user is on compose but no
851
+ // compose file exists. With no preference (or any non-compose tab) we keep the historical
852
+ // kubernetes-first order.
853
+ if (options.prefer === 'docker-compose' && compose) {
854
+ return composeRecommendation(compose, serviceBasename, roots.length > 0);
855
+ }
856
+ // Colocated k8s manifests win (highest confidence). In a monorepo, ALSO surface a root-shared
857
+ // per-service slice as a low-confidence "this might be the deploy target instead" hint — but ONLY
858
+ // when a slice actually matches THIS service's name. Surfacing every unrelated `deploy/*` child
859
+ // here is pure noise (the colocated manifests are already the confident pick).
860
+ if (roots.length > 0) {
861
+ const lowerBasename = serviceBasename.toLowerCase();
862
+ const matchingHint = repoScanEnabled
863
+ ? (await findServiceDeployCandidates(scanner, serviceBasename)).filter((c) => c.name.toLowerCase() === lowerBasename)
864
+ : [];
865
+ return buildKubernetesRecommendation(scanner, roots, root, {
866
+ serviceBasename,
867
+ compose,
868
+ ...(matchingHint.length > 0 ? { serviceDirCandidates: matchingHint } : {}),
869
+ });
870
+ }
871
+ // No colocated manifests. In a monorepo, look for THIS service's slice in a root shared-deploy dir
872
+ // (e.g. `deploy/<service>`), preferring the basename-matched slice(s).
873
+ if (repoScanEnabled) {
874
+ const slices = await findServiceDeployCandidates(scanner, serviceBasename);
875
+ if (slices.length > 0) {
876
+ const ordered = [...slices].sort((a, b) => Number(b.recommended) - Number(a.recommended));
877
+ for (const slice of ordered) {
878
+ const sliceRoots = await collectKubernetesRoots(scanner, slice.path);
879
+ if (sliceRoots.length > 0) {
880
+ return buildKubernetesRecommendation(scanner, sliceRoots, '', {
881
+ serviceBasename,
882
+ compose,
883
+ serviceDirCandidates: slices,
884
+ chosenSlice: slice,
885
+ });
886
+ }
887
+ }
888
+ // Slices exist but none resolved to real manifests. Only pre-select a k8s config when a slice
889
+ // actually matches THIS service's name (`ordered[0]` is the recommended one, if any): a
890
+ // basename match is a strong signal the slice is ours even if our heuristics didn't spot the
891
+ // manifests. Without a name match we do NOT fabricate a kubernetes pick at an arbitrary,
892
+ // unconfirmed dir — fall through to compose / none instead.
893
+ const chosen = ordered[0];
894
+ if (chosen.recommended && !compose) {
895
+ return {
896
+ detected: true,
897
+ provisioning: {
898
+ type: 'kubernetes',
899
+ manifestSource: { type: 'colocated', path: chosen.path },
900
+ },
901
+ serviceDirCandidates: slices,
902
+ notes: [
903
+ {
904
+ field: 'serviceDir',
905
+ confidence: 'low',
906
+ message: `Matched a shared deploy slice by name (${chosen.path}) but couldn't confirm Kubernetes manifests inside it. Pre-selected it; verify the path or pick a different slice below.`,
907
+ },
908
+ ],
909
+ };
910
+ }
911
+ }
912
+ }
913
+ if (compose)
914
+ return composeRecommendation(compose, serviceBasename);
915
+ return noneRecommendation();
916
+ }
624
917
  //# sourceMappingURL=provision-detect.logic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provision-detect.logic.js","sourceRoot":"","sources":["../../../src/modules/environments/provision-detect.logic.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provision-detect.logic.js","sourceRoot":"","sources":["../../../src/modules/environments/provision-detect.logic.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.48.2",
3
+ "version": "0.50.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",
@@ -26,8 +26,8 @@
26
26
  "dependencies": {
27
27
  "ai": "^6.0.214",
28
28
  "yaml": "^2.9.0",
29
- "@cat-factory/contracts": "0.70.1",
30
- "@cat-factory/kernel": "0.63.2"
29
+ "@cat-factory/contracts": "0.71.0",
30
+ "@cat-factory/kernel": "0.63.3"
31
31
  },
32
32
  "devDependencies": {
33
33
  "typescript": "7.0.1-rc",