@cat-factory/kernel 0.142.0 → 0.144.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,4 +1,3 @@
1
- import { mergeRegisteredPipelines } from './pipeline-registry.js';
2
1
  // Sample architecture used to populate a workspace on creation. Mirrors the
3
2
  // frontend's `app/utils/seed.ts`. Block ids are stable strings; because blocks
4
3
  // are keyed by (workspace_id, id) every workspace gets its own copy, so reusing
@@ -126,21 +125,26 @@ function definePipeline(spec) {
126
125
  return {
127
126
  id: spec.id,
128
127
  name: spec.name,
128
+ ...(spec.description ? { description: spec.description } : {}),
129
129
  agentKinds: norm.map((s) => s.kind),
130
130
  ...(gates.some(Boolean) ? { gates } : {}),
131
131
  ...(enabled.some((e) => !e) ? { enabled } : {}),
132
132
  ...(spec.availability ? { availability: spec.availability } : {}),
133
+ ...(spec.purpose ? { purpose: spec.purpose } : {}),
133
134
  ...(spec.labels ? { labels: spec.labels } : {}),
134
135
  ...(spec.version !== undefined ? { version: spec.version } : {}),
135
136
  ...(spec.public ? { public: spec.public } : {}),
136
137
  };
137
138
  }
138
139
  /**
139
- * Reusable pipelines shown in the pipeline palette on first load: the built-in catalog
140
- * plus any pipelines a deployment registered via `registerPipeline` (e.g. a proprietary
141
- * org package), merged by id.
140
+ * Reusable pipelines shown in the pipeline palette on first load: the built-in catalog plus any
141
+ * pipelines a deployment registered on the app-owned {@link PipelineRegistry} (e.g. a proprietary
142
+ * org package), merged by id. Omit `registry` (or pass a fresh one) for the built-in catalog only —
143
+ * the shape a caller that only resolves a BUILT-IN pipeline's id needs (e.g. plan-helpers, the
144
+ * cross-runtime conformance baseline). The workspace + pipeline services thread the app-owned
145
+ * instance so a deployment's custom pipelines are seeded into every new workspace.
142
146
  */
143
- export function seedPipelines() {
147
+ export function seedPipelines(registry) {
144
148
  const builtins = [
145
149
  // `requirements` runs first and reviews the collected requirements; the spec-writer then
146
150
  // applies them as an increment onto the in-repo spec baseline, and only THEN does the architect
@@ -153,11 +157,14 @@ export function seedPipelines() {
153
157
  definePipeline({
154
158
  id: 'pl_full',
155
159
  name: 'Full build',
160
+ purpose: 'build',
161
+ description: 'The standard end-to-end build: review the requirements, write the spec, design the solution, implement and review it, refresh the service map, test, then gate on conflicts + CI and merge the PR.',
156
162
  // `code-commenter` runs after the reviewer clears the implementation: it amends the coder's
157
163
  // PR in place with comment-only edits (WHY-not-what, fixes drifted comments, drops noise), so
158
164
  // basic comment hygiene is business-as-usual on every task. `ci` re-runs to prove the
159
- // comment-only diff is behaviour-neutral. Version bumped for the code-commenter reseed.
160
- version: 3,
165
+ // comment-only diff is behaviour-neutral. Version bumped for the code-commenter reseed,
166
+ // then again for the pipeline-description reseed, then again for the purpose classifier reseed.
167
+ version: 5,
161
168
  steps: [
162
169
  // Opt-in structured-dialogue option exploration before the requirements review.
163
170
  { kind: 'requirements-brainstorm', gate: true, enabled: false },
@@ -212,12 +219,14 @@ export function seedPipelines() {
212
219
  // conflicts → ci → merger → the same mergeability / CI / merge tail as Full build
213
220
  id: 'pl_fullstack',
214
221
  name: 'Complex fullstack feature',
222
+ purpose: 'build',
223
+ description: 'The most thorough preset — engages every valuable agent (research, spec, design, mocks, end-to-end tests and docs) for a complex, full-stack feature, then gates and ships the PR.',
215
224
  // A `deployer` runs before the tester (k8s/custom only; a no-op otherwise). Human gates: the
216
225
  // two opt-in brainstorm dialogues, the requirements review, and — after its companion clears
217
226
  // the quality bar — the architecture (on `architect-companion`). A `code-commenter` runs after
218
227
  // the reviewer to keep in-source comments up to standard on the same PR. Version bumped for
219
- // the code-commenter reseed.
220
- version: 3,
228
+ // the code-commenter reseed, then again for the pipeline-description reseed, then again for the purpose classifier reseed.
229
+ version: 5,
221
230
  steps: [
222
231
  // Opt-in structured-dialogue option exploration.
223
232
  { kind: 'requirements-brainstorm', gate: true, enabled: false },
@@ -252,6 +261,9 @@ export function seedPipelines() {
252
261
  definePipeline({
253
262
  id: 'pl_bugfix',
254
263
  name: 'Triage & fix bug',
264
+ purpose: 'build',
265
+ version: 3,
266
+ description: 'Investigate a bug report against the codebase, triage it for fixability with you, then fix, review, and ship the PR.',
255
267
  steps: [
256
268
  'bug-investigator',
257
269
  { kind: 'clarity-review', gate: true },
@@ -267,10 +279,13 @@ export function seedPipelines() {
267
279
  {
268
280
  id: 'pl_quick',
269
281
  name: 'Quick implement',
282
+ purpose: 'build',
283
+ description: 'A fast build with no design or spec phase: implement, refresh the map, mock and test, then gate on conflicts + CI and merge.',
270
284
  // A `deployer` runs before the tester so a kubernetes/custom service gets its ephemeral env
271
285
  // stood up (a no-op for docker-compose/infraless/frontend); bump the version for the reseed
272
- // offer. Same pattern across every tester/human-test built-in below.
273
- version: 2,
286
+ // offer. Same pattern across every tester/human-test built-in below. Bumped again for the
287
+ // pipeline-description reseed, then again for the purpose classifier reseed.
288
+ version: 4,
274
289
  agentKinds: [
275
290
  'coder',
276
291
  'blueprints',
@@ -291,7 +306,9 @@ export function seedPipelines() {
291
306
  {
292
307
  id: 'pl_simple',
293
308
  name: 'Simple',
294
- version: 2,
309
+ purpose: 'build',
310
+ description: 'The leanest build: implement and review, run the tests, then gate on conflicts + CI and merge — no design, spec, or docs.',
311
+ version: 4,
295
312
  agentKinds: [
296
313
  'coder',
297
314
  'reviewer',
@@ -311,11 +328,20 @@ export function seedPipelines() {
311
328
  // iteration budget are per-task agent config on the `ralph` step (no design/spec phases;
312
329
  // the task description is the spec, and prior iterations' validation output is threaded
313
330
  // forward as feedback). See backend/docs/ralph-loop.md.
314
- { id: 'pl_ralph', name: 'Ralph loop', agentKinds: ['ralph', 'conflicts', 'ci', 'merger'] },
331
+ {
332
+ id: 'pl_ralph',
333
+ name: 'Ralph loop',
334
+ purpose: 'build',
335
+ version: 3,
336
+ description: 'A single persistent coding step that retries against your validation command until it passes, then gates and ships the PR.',
337
+ agentKinds: ['ralph', 'conflicts', 'ci', 'merger'],
338
+ },
315
339
  {
316
340
  id: 'pl_integrate',
317
341
  name: 'Integrate & ship',
318
- version: 2,
342
+ purpose: 'build',
343
+ description: 'Wire an existing change into the surrounding system, mock and test it, then document it.',
344
+ version: 4,
319
345
  agentKinds: ['integrator', 'mocker', 'deployer', 'tester-api', 'documenter'],
320
346
  },
321
347
  // A human-in-the-loop build: implement → review, then a `human-test` gate that spins up an
@@ -327,10 +353,12 @@ export function seedPipelines() {
327
353
  {
328
354
  id: 'pl_human_review',
329
355
  name: 'Build & human-test',
356
+ purpose: 'build',
357
+ description: 'Implement and review, then pause on a live ephemeral environment for a person to validate the change before gating on conflicts + CI and merging.',
330
358
  // The `deployer` stands the ephemeral env up before the human-test gate reads it (the gate no
331
359
  // longer provisions its own — the deployer is the single provisioner; the gate loops back here
332
- // to rebuild on a fix/recreate).
333
- version: 2,
360
+ // to rebuild on a fix/recreate). Bumped again for the pipeline-description reseed, then again for the purpose classifier reseed.
361
+ version: 4,
334
362
  agentKinds: ['coder', 'reviewer', 'deployer', 'human-test', 'conflicts', 'ci', 'merger'],
335
363
  },
336
364
  // A human-code-review build: the full implement → review → map → test tail, then a
@@ -343,7 +371,9 @@ export function seedPipelines() {
343
371
  {
344
372
  id: 'pl_pr_review',
345
373
  name: 'Build & PR review',
346
- version: 2,
374
+ purpose: 'build',
375
+ description: 'The full implement → review → test build, then wait for a human code review on the PR — looping a fixer on comments — before merging.',
376
+ version: 4,
347
377
  agentKinds: [
348
378
  'coder',
349
379
  'reviewer',
@@ -375,8 +405,10 @@ export function seedPipelines() {
375
405
  {
376
406
  id: 'pl_visual',
377
407
  name: 'Build & visual confirmation',
408
+ purpose: 'build',
409
+ description: 'Implement and UI-test, then pause for a person to compare the captured screenshots against the reference designs before gating and merging.',
378
410
  labels: ['experimental'],
379
- version: 2,
411
+ version: 4,
380
412
  agentKinds: [
381
413
  'coder',
382
414
  'reviewer',
@@ -412,8 +444,10 @@ export function seedPipelines() {
412
444
  {
413
445
  id: 'pl_frontend',
414
446
  name: 'Frontend build & UI test',
447
+ purpose: 'build',
448
+ description: 'A self-contained frontend build that drives a real browser against the app the platform stands up, then gates on conflicts + CI and ships the PR.',
415
449
  labels: ['experimental'],
416
- version: 2,
450
+ version: 4,
417
451
  agentKinds: [
418
452
  'coder',
419
453
  'reviewer',
@@ -433,7 +467,9 @@ export function seedPipelines() {
433
467
  {
434
468
  id: 'pl_dep_update',
435
469
  name: 'Dependency updates',
436
- version: 2,
470
+ purpose: 'build',
471
+ description: 'A recurring implement → review → test → merge run for keeping a repository up to date on its dependencies.',
472
+ version: 4,
437
473
  agentKinds: [
438
474
  'coder',
439
475
  'reviewer',
@@ -449,7 +485,9 @@ export function seedPipelines() {
449
485
  {
450
486
  id: 'pl_tech_debt',
451
487
  name: 'Tech debt',
452
- version: 2,
488
+ purpose: 'build',
489
+ description: 'Audit the repository, file a tracker ticket from the findings, then implement, test, and ship the fix.',
490
+ version: 4,
453
491
  agentKinds: [
454
492
  'analysis',
455
493
  'tracker',
@@ -488,10 +526,13 @@ export function seedPipelines() {
488
526
  // investigator auto-advances and the conflicts/ci/merger tail self-drives.
489
527
  id: 'pl_bug_triage',
490
528
  name: 'Bug triage (recurring)',
529
+ purpose: 'build',
530
+ description: 'A recurring run that pulls one open issue from your tracker board, investigates and clarifies it, then fixes, tests, and ships the PR.',
491
531
  availability: 'recurring',
492
532
  // A `deployer` runs before the tester (k8s/custom only; a no-op otherwise). Only
493
- // `clarity-review` is a human gate; version bumped for the reseed offer.
494
- version: 2,
533
+ // `clarity-review` is a human gate; version bumped for the reseed offer, then again for the
534
+ // pipeline-description reseed, then again for the purpose classifier reseed.
535
+ version: 4,
495
536
  steps: [
496
537
  'bug-intake',
497
538
  'bug-investigator',
@@ -509,13 +550,27 @@ export function seedPipelines() {
509
550
  }),
510
551
  // A blueprint-only pipeline, run after a bootstrap to create the initial
511
552
  // service map (and populate the board) from the freshly bootstrapped repo.
512
- { id: 'pl_blueprint', name: 'Map service', agentKinds: ['blueprints'] },
553
+ {
554
+ id: 'pl_blueprint',
555
+ name: 'Map service',
556
+ purpose: 'build',
557
+ version: 3,
558
+ description: 'Map the repository into the service → modules blueprint and populate the board (run after a bootstrap).',
559
+ agentKinds: ['blueprints'],
560
+ },
513
561
  // The PR deep-review pipeline (the DEFAULT for a `review` task): a single read-only
514
562
  // `pr-reviewer` step that slices an open PR's diff into cohesive chunks, reviews each,
515
563
  // and returns prioritized findings. No code is written and no PR is opened, so there is
516
564
  // no merge tail — the run terminates cleanly via the no-PR terminal path in
517
565
  // `RunStateMachine.finalizeBlock`. See backend/docs/adr/0023-pr-deep-review.md.
518
- { id: 'pl_review', name: 'Review a pull request', agentKinds: ['pr-reviewer'] },
566
+ {
567
+ id: 'pl_review',
568
+ name: 'Review a pull request',
569
+ purpose: 'review',
570
+ version: 3,
571
+ description: 'A read-only deep review of an open pull request that returns prioritized findings — no code is written and no PR is opened.',
572
+ agentKinds: ['pr-reviewer'],
573
+ },
519
574
  definePipeline({
520
575
  // The Initiative Planning pipeline — the ONLY pipeline runnable on an
521
576
  // `initiative`-level block (and initiative blocks accept no other; see the
@@ -529,10 +584,13 @@ export function seedPipelines() {
529
584
  // `docs/initiatives/<slug>/`) and arms the execution loop.
530
585
  id: 'pl_initiative',
531
586
  name: 'Plan initiative',
587
+ purpose: 'planning',
588
+ description: 'Interview you on the initiative, analyze the codebase, and draft a multi-phase plan for approval before committing it.',
532
589
  // Slice 2 added the interviewer + analyst in front of the planner; version bumped for the
533
590
  // reseed offer. The interviewer parks via its own controller (not a `gate`); the only human
534
- // gate is on the planner's output, before the committer persists it.
535
- version: 2,
591
+ // gate is on the planner's output, before the committer persists it. Bumped again for the
592
+ // pipeline-description reseed, then again for the purpose classifier reseed.
593
+ version: 4,
536
594
  steps: [
537
595
  'initiative-interviewer',
538
596
  'initiative-analyst',
@@ -550,11 +608,21 @@ export function seedPipelines() {
550
608
  {
551
609
  id: 'pl_initiative_docs',
552
610
  name: 'Plan documentation refresh',
611
+ purpose: 'planning',
612
+ version: 3,
613
+ description: 'Audit the codebase for documentation gaps and draft a phased documentation-refresh plan — no interview, runs unattended.',
553
614
  agentKinds: ['initiative-analyst', 'initiative-planner', 'initiative-committer'],
554
615
  },
555
616
  // A spec-only pipeline, to (re)generate a service's unified in-repo specification
556
617
  // (and its Gherkin acceptance scenarios) independently.
557
- { id: 'pl_spec', name: 'Write spec', agentKinds: ['spec-writer'] },
618
+ {
619
+ id: 'pl_spec',
620
+ name: 'Write spec',
621
+ purpose: 'build',
622
+ version: 3,
623
+ description: '(Re)generate the unified in-repo specification for a service and its Gherkin acceptance scenarios, independently.',
624
+ agentKinds: ['spec-writer'],
625
+ },
558
626
  definePipeline({
559
627
  // The SPIKE pipeline — a timeboxed research/investigation task that produces a findings
560
628
  // document, delivered as a PULL REQUEST (the default). It is the type-default a
@@ -571,6 +639,9 @@ export function seedPipelines() {
571
639
  // no-PR path on an unprotected repo.
572
640
  id: 'pl_spike',
573
641
  name: 'Run a spike',
642
+ purpose: 'research',
643
+ version: 3,
644
+ description: 'A timeboxed read-only investigation that answers a research question and delivers a findings document as a pull request.',
574
645
  steps: [
575
646
  { kind: 'requirements-review', gate: true, enabled: false },
576
647
  'spike',
@@ -589,6 +660,9 @@ export function seedPipelines() {
589
660
  // / throwaway research where the PR round-trip of `pl_spike` isn't wanted.
590
661
  id: 'pl_spike_direct',
591
662
  name: 'Run a spike (direct commit)',
663
+ purpose: 'research',
664
+ version: 3,
665
+ description: 'A timeboxed read-only investigation that commits its findings document straight to the base branch — no PR or review tail.',
592
666
  steps: [{ kind: 'requirements-review', gate: true, enabled: false }, 'spike'],
593
667
  }),
594
668
  // An analyst-only pipeline: the opt-in `environment-analyst` clones a service's repo
@@ -599,6 +673,9 @@ export function seedPipelines() {
599
673
  {
600
674
  id: 'pl_environment_analysis',
601
675
  name: 'Analyze environment',
676
+ purpose: 'research',
677
+ version: 3,
678
+ description: 'Read the service repository and draft a non-binding Docker Compose stack-recipe recommendation for the setup wizard.',
602
679
  agentKinds: ['environment-analyst'],
603
680
  },
604
681
  // The first PUBLIC-API pipeline: a single inline `initiative-breakdown` step that
@@ -609,6 +686,9 @@ export function seedPipelines() {
609
686
  {
610
687
  id: 'pl_initiative_breakdown',
611
688
  name: 'Break down initiative',
689
+ purpose: 'planning',
690
+ version: 3,
691
+ description: 'Decompose an initiative brief into a structured plan headlessly (inline, no repo) — the first pipeline exposed to the public API.',
612
692
  agentKinds: ['initiative-breakdown'],
613
693
  public: true,
614
694
  },
@@ -638,11 +718,14 @@ export function seedPipelines() {
638
718
  // conflicts → ci → merger → the same mergeability / CI / merge tail as a code pipeline
639
719
  id: 'pl_document',
640
720
  name: 'Author a document',
721
+ purpose: 'document',
722
+ description: 'Turn a brief and its linked context into a polished in-repo Markdown document — research, outline, interview, write, review, then gate and ship the PR.',
641
723
  // Slice WS5 inserted the interactive `doc-interviewer` after the outliner and replaced the
642
724
  // outline's binary human gate with its iterative loop; version bumped for the reseed offer. The
643
725
  // interviewer parks via its OWN controller (not a `gate`), `doc-quality` is a polling gate
644
726
  // (auto), so the only human `gate` is the converged review (`doc-reviewer`, after its loop).
645
- version: 3,
727
+ // Bumped again for the pipeline-description reseed, then again for the purpose classifier reseed.
728
+ version: 5,
646
729
  steps: [
647
730
  'doc-researcher',
648
731
  'doc-outliner',
@@ -663,7 +746,9 @@ export function seedPipelines() {
663
746
  // just without the research / outline / finalize stages and their human gates.
664
747
  id: 'pl_document_quick',
665
748
  name: 'Quick document',
666
- version: 2,
749
+ purpose: 'document',
750
+ description: 'A lean document build for a small or low-stakes doc: draft, auto-review, the structural quality gate, then gate on conflicts + CI and merge.',
751
+ version: 4,
667
752
  agentKinds: ['doc-writer', 'doc-reviewer', 'doc-quality', 'conflicts', 'ci', 'merger'],
668
753
  },
669
754
  // The Documentation-refresh pilot's two lean spawn pipelines (initiative-presets slice 7).
@@ -678,6 +763,9 @@ export function seedPipelines() {
678
763
  // load-bearing here — it proves the diff is behaviour-neutral before `merger` ships it.
679
764
  id: 'pl_code_comments',
680
765
  name: 'Improve code comments',
766
+ purpose: 'build',
767
+ version: 3,
768
+ description: 'Add or clarify why-not-what in-source comments with no behaviour change, prove the diff is behaviour-neutral on CI, then merge.',
681
769
  agentKinds: ['code-commenter', 'conflicts', 'ci', 'merger'],
682
770
  },
683
771
  {
@@ -687,6 +775,9 @@ export function seedPipelines() {
687
775
  // documenter into a full build pipeline when only the domain-rules docs are wanted.
688
776
  id: 'pl_business_docs',
689
777
  name: 'Document business rules',
778
+ purpose: 'document',
779
+ version: 3,
780
+ description: 'Read the implementation and capture the service business rules / domain constraints as in-repo docs, then gate on conflicts + CI and ship the PR.',
690
781
  agentKinds: ['business-documenter', 'conflicts', 'ci', 'merger'],
691
782
  },
692
783
  ];
@@ -697,9 +788,11 @@ export function seedPipelines() {
697
788
  // version of a built-in, bump that pipeline's own `version` here (an explicit `version: N`
698
789
  // on the object overrides this default) — that increment is the signal the app's reseed
699
790
  // prompt keys off. The default is applied to EVERY built-in in the merged catalog — including
700
- // ones contributed by `registerPipeline` — so a registered built-in is version-tracked +
791
+ // ones contributed via the pipeline registry — so a registered built-in is version-tracked +
701
792
  // reseedable too, while custom (non-built-in) registered pipelines stay versionless.
702
- return mergeRegisteredPipelines(builtins.map((p) => ({ ...p, builtin: true }))).map((p) => p.builtin ? { ...p, version: p.version ?? 1 } : p);
793
+ const tagged = builtins.map((p) => ({ ...p, builtin: true }));
794
+ const merged = registry ? registry.merge(tagged) : tagged;
795
+ return merged.map((p) => (p.builtin ? { ...p, version: p.version ?? 1 } : p));
703
796
  }
704
797
  /** Pipeline id of the blueprint-only run kicked off after a successful bootstrap. */
705
798
  export const BLUEPRINT_PIPELINE_ID = 'pl_blueprint';
@@ -1 +1 @@
1
- {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/domain/seed.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seed.js","sourceRoot":"","sources":["../../src/domain/seed.ts"],"names":[],"mappings":"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"}
@@ -22,25 +22,40 @@ export interface VcsProviderBundle {
22
22
  readonly provisioning?: VcsProvisioningClient;
23
23
  }
24
24
  /**
25
- * Register a VCS provider bundle. A later registration of the same provider replaces the
26
- * earlier one (so a deployment can override a built-in adapter). Register at startup,
27
- * before serving.
25
+ * App-owned registry of VCS provider bundles, keyed by the {@link VcsProvider} discriminator.
26
+ * The composition root news ONE instance and threads it through the container; a deployment
27
+ * (or an adapter package like `@cat-factory/gitlab`) registers each provider it supports on
28
+ * that instance by reference, and any caller holding a {@link VcsConnectionRef} resolves the
29
+ * concrete adapter through it. Mirrors {@link GateRegistry} / the backend registries — there
30
+ * is no module-global `Map` and no `clear*()` test cruft.
28
31
  */
29
- export declare function registerVcsProvider(bundle: VcsProviderBundle): void;
30
- /** The registered bundle for a provider, or `undefined` when nothing is registered. */
31
- export declare function getVcsProvider(provider: VcsProvider): VcsProviderBundle | undefined;
32
- /** Whether a bundle is registered for a provider. */
33
- export declare function isVcsProviderRegistered(provider: VcsProvider): boolean;
32
+ export declare class VcsProviderRegistry {
33
+ private readonly registry;
34
+ /**
35
+ * Register a VCS provider bundle. A later registration of the same provider replaces the
36
+ * earlier one (so a deployment can override a built-in adapter). Register at startup,
37
+ * before serving.
38
+ */
39
+ register(bundle: VcsProviderBundle): void;
40
+ /** The registered bundle for a provider, or `undefined` when nothing is registered. */
41
+ get(provider: VcsProvider): VcsProviderBundle | undefined;
42
+ /** Whether a bundle is registered for a provider. */
43
+ has(provider: VcsProvider): boolean;
44
+ /**
45
+ * The registered bundle for a provider, or throw. Use when a {@link VcsConnectionRef} in
46
+ * hand means a provider MUST be wired (a connection can only exist for a registered
47
+ * provider) — the throw then surfaces a wiring bug rather than failing deep in a call.
48
+ */
49
+ require(provider: VcsProvider): VcsProviderBundle;
50
+ /** Convenience: resolve the bundle for a connection ref (throws if unregistered). */
51
+ resolve(connection: VcsConnectionRef): VcsProviderBundle;
52
+ /** Every registered provider discriminator (registration order). */
53
+ providers(): VcsProvider[];
54
+ }
34
55
  /**
35
- * The registered bundle for a provider, or throw. Use when a {@link VcsConnectionRef} in
36
- * hand means a provider MUST be wired (a connection can only exist for a registered
37
- * provider) the throw then surfaces a wiring bug rather than failing deep in a call.
56
+ * A fresh, empty VCS provider registry. A facade news one, registers the providers its
57
+ * configuration enables (e.g. `@cat-factory/gitlab`'s `registerGitLab(registry, …)`), and
58
+ * threads the SAME instance through the container.
38
59
  */
39
- export declare function requireVcsProvider(provider: VcsProvider): VcsProviderBundle;
40
- /** Convenience: resolve the bundle for a connection ref (throws if unregistered). */
41
- export declare function resolveVcsProvider(connection: VcsConnectionRef): VcsProviderBundle;
42
- /** Every registered provider discriminator (registration order). */
43
- export declare function registeredVcsProviders(): VcsProvider[];
44
- /** Drop all registered providers. Intended for tests that exercise registration. */
45
- export declare function clearVcsProviders(): void;
60
+ export declare function defaultVcsRegistry(): VcsProviderRegistry;
46
61
  //# sourceMappingURL=vcs-registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"vcs-registry.d.ts","sourceRoot":"","sources":["../../src/domain/vcs-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAgB/D;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAA;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAC1B,sFAAsF;IACtF,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAA;IAC1C,8FAA8F;IAC9F,QAAQ,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAA;IACzC,8CAA8C;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAAE,qBAAqB,CAAA;CAC9C;AAMD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAEnE;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,iBAAiB,GAAG,SAAS,CAEnF;AAED,qDAAqD;AACrD,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAEtE;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,WAAW,GAAG,iBAAiB,CAM3E;AAED,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,gBAAgB,GAAG,iBAAiB,CAElF;AAED,oEAAoE;AACpE,wBAAgB,sBAAsB,IAAI,WAAW,EAAE,CAEtD;AAED,oFAAoF;AACpF,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
1
+ {"version":3,"file":"vcs-registry.d.ts","sourceRoot":"","sources":["../../src/domain/vcs-registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAA;AACvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAA;AACzE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAA;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAqB/D;;;;;GAKG;AACH,MAAM,WAAW,iBAAiB;IAChC,oEAAoE;IACpE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAA;IAC9B,6EAA6E;IAC7E,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAA;IAC1B,sFAAsF;IACtF,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe,CAAA;IAC1C,8FAA8F;IAC9F,QAAQ,CAAC,aAAa,CAAC,EAAE,gBAAgB,CAAA;IACzC,8CAA8C;IAC9C,QAAQ,CAAC,YAAY,CAAC,EAAE,qBAAqB,CAAA;CAC9C;AAED;;;;;;;GAOG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4C;IAErE;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,iBAAiB,GAAG,IAAI,CAExC;IAED,uFAAuF;IACvF,GAAG,CAAC,QAAQ,EAAE,WAAW,GAAG,iBAAiB,GAAG,SAAS,CAExD;IAED,qDAAqD;IACrD,GAAG,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAElC;IAED;;;;OAIG;IACH,OAAO,CAAC,QAAQ,EAAE,WAAW,GAAG,iBAAiB,CAMhD;IAED,qFAAqF;IACrF,OAAO,CAAC,UAAU,EAAE,gBAAgB,GAAG,iBAAiB,CAEvD;IAED,oEAAoE;IACpE,SAAS,IAAI,WAAW,EAAE,CAEzB;CACF;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,IAAI,mBAAmB,CAExD"}
@@ -1,44 +1,56 @@
1
- // Process-wide map, keyed by provider discriminator. Registration is a startup side
2
- // effect, read whenever a caller resolves a provider from a connection ref.
3
- const registry = new Map();
4
1
  /**
5
- * Register a VCS provider bundle. A later registration of the same provider replaces the
6
- * earlier one (so a deployment can override a built-in adapter). Register at startup,
7
- * before serving.
2
+ * App-owned registry of VCS provider bundles, keyed by the {@link VcsProvider} discriminator.
3
+ * The composition root news ONE instance and threads it through the container; a deployment
4
+ * (or an adapter package like `@cat-factory/gitlab`) registers each provider it supports on
5
+ * that instance by reference, and any caller holding a {@link VcsConnectionRef} resolves the
6
+ * concrete adapter through it. Mirrors {@link GateRegistry} / the backend registries — there
7
+ * is no module-global `Map` and no `clear*()` test cruft.
8
8
  */
9
- export function registerVcsProvider(bundle) {
10
- registry.set(bundle.provider, bundle);
11
- }
12
- /** The registered bundle for a provider, or `undefined` when nothing is registered. */
13
- export function getVcsProvider(provider) {
14
- return registry.get(provider);
15
- }
16
- /** Whether a bundle is registered for a provider. */
17
- export function isVcsProviderRegistered(provider) {
18
- return registry.has(provider);
9
+ export class VcsProviderRegistry {
10
+ registry = new Map();
11
+ /**
12
+ * Register a VCS provider bundle. A later registration of the same provider replaces the
13
+ * earlier one (so a deployment can override a built-in adapter). Register at startup,
14
+ * before serving.
15
+ */
16
+ register(bundle) {
17
+ this.registry.set(bundle.provider, bundle);
18
+ }
19
+ /** The registered bundle for a provider, or `undefined` when nothing is registered. */
20
+ get(provider) {
21
+ return this.registry.get(provider);
22
+ }
23
+ /** Whether a bundle is registered for a provider. */
24
+ has(provider) {
25
+ return this.registry.has(provider);
26
+ }
27
+ /**
28
+ * The registered bundle for a provider, or throw. Use when a {@link VcsConnectionRef} in
29
+ * hand means a provider MUST be wired (a connection can only exist for a registered
30
+ * provider) — the throw then surfaces a wiring bug rather than failing deep in a call.
31
+ */
32
+ require(provider) {
33
+ const bundle = this.registry.get(provider);
34
+ if (!bundle) {
35
+ throw new Error(`VCS provider "${provider}" is not registered.`);
36
+ }
37
+ return bundle;
38
+ }
39
+ /** Convenience: resolve the bundle for a connection ref (throws if unregistered). */
40
+ resolve(connection) {
41
+ return this.require(connection.provider);
42
+ }
43
+ /** Every registered provider discriminator (registration order). */
44
+ providers() {
45
+ return [...this.registry.keys()];
46
+ }
19
47
  }
20
48
  /**
21
- * The registered bundle for a provider, or throw. Use when a {@link VcsConnectionRef} in
22
- * hand means a provider MUST be wired (a connection can only exist for a registered
23
- * provider) the throw then surfaces a wiring bug rather than failing deep in a call.
49
+ * A fresh, empty VCS provider registry. A facade news one, registers the providers its
50
+ * configuration enables (e.g. `@cat-factory/gitlab`'s `registerGitLab(registry, …)`), and
51
+ * threads the SAME instance through the container.
24
52
  */
25
- export function requireVcsProvider(provider) {
26
- const bundle = registry.get(provider);
27
- if (!bundle) {
28
- throw new Error(`VCS provider "${provider}" is not registered.`);
29
- }
30
- return bundle;
31
- }
32
- /** Convenience: resolve the bundle for a connection ref (throws if unregistered). */
33
- export function resolveVcsProvider(connection) {
34
- return requireVcsProvider(connection.provider);
35
- }
36
- /** Every registered provider discriminator (registration order). */
37
- export function registeredVcsProviders() {
38
- return [...registry.keys()];
39
- }
40
- /** Drop all registered providers. Intended for tests that exercise registration. */
41
- export function clearVcsProviders() {
42
- registry.clear();
53
+ export function defaultVcsRegistry() {
54
+ return new VcsProviderRegistry();
43
55
  }
44
56
  //# sourceMappingURL=vcs-registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"vcs-registry.js","sourceRoot":"","sources":["../../src/domain/vcs-registry.ts"],"names":[],"mappings":"AAuCA,oFAAoF;AACpF,4EAA4E;AAC5E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkC,CAAA;AAE1D;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAyB;IAC3D,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;AACvC,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,cAAc,CAAC,QAAqB;IAClD,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AAC/B,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,uBAAuB,CAAC,QAAqB;IAC3D,OAAO,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;AAC/B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,QAAqB;IACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,sBAAsB,CAAC,CAAA;IAClE,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,qFAAqF;AACrF,MAAM,UAAU,kBAAkB,CAAC,UAA4B;IAC7D,OAAO,kBAAkB,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;AAChD,CAAC;AAED,oEAAoE;AACpE,MAAM,UAAU,sBAAsB;IACpC,OAAO,CAAC,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;AAC7B,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,iBAAiB;IAC/B,QAAQ,CAAC,KAAK,EAAE,CAAA;AAClB,CAAC"}
1
+ {"version":3,"file":"vcs-registry.js","sourceRoot":"","sources":["../../src/domain/vcs-registry.ts"],"names":[],"mappings":"AA4CA;;;;;;;GAOG;AACH,MAAM,OAAO,mBAAmB;IACb,QAAQ,GAAG,IAAI,GAAG,EAAkC,CAAA;IAErE;;;;OAIG;IACH,QAAQ,CAAC,MAAyB;QAChC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC5C,CAAC;IAED,uFAAuF;IACvF,GAAG,CAAC,QAAqB;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC;IAED,qDAAqD;IACrD,GAAG,CAAC,QAAqB;QACvB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;IACpC,CAAC;IAED;;;;OAIG;IACH,OAAO,CAAC,QAAqB;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,iBAAiB,QAAQ,sBAAsB,CAAC,CAAA;QAClE,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,qFAAqF;IACrF,OAAO,CAAC,UAA4B;QAClC,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC1C,CAAC;IAED,oEAAoE;IACpE,SAAS;QACP,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAA;IAClC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,kBAAkB;IAChC,OAAO,IAAI,mBAAmB,EAAE,CAAA;AAClC,CAAC"}